<?xml version="1.0"?>
<doc>
    <assembly>
        <name>NewLife.Core</name>
    </assembly>
    <members>
        <member name="T:NewLife.Log.WriteLogEventArgs">
            <summary>
            写日志事件参数
            </summary>
        </member>
        <member name="M:NewLife.Log.WriteLogEventArgs.#ctor(System.String)">
            <summary>
            构造函数
            </summary>
            <param name="message">日志</param>
        </member>
        <member name="M:NewLife.Log.WriteLogEventArgs.#ctor(System.String,System.Exception)">
            <summary>
            构造函数
            </summary>
            <param name="message">日志</param>
            <param name="exception">异常</param>
        </member>
        <member name="M:NewLife.Log.WriteLogEventArgs.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Log.WriteLogEventArgs.Message">
            <summary>日志信息</summary>
        </member>
        <member name="P:NewLife.Log.WriteLogEventArgs.Exception">
            <summary>异常</summary>
        </member>
        <member name="P:NewLife.Log.WriteLogEventArgs.Time">
            <summary>时间</summary>
        </member>
        <member name="P:NewLife.Log.WriteLogEventArgs.ThreadID">
            <summary>线程编号</summary>
        </member>
        <member name="P:NewLife.Log.WriteLogEventArgs.IsPoolThread">
            <summary>是否线程池线程</summary>
        </member>
        <member name="P:NewLife.Log.WriteLogEventArgs.ThreadName">
            <summary>线程名</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolFormatterHead">
            <summary>
            协议序列化头部
            </summary>
            <remarks>
            默认情况下，协议序列化包含头部信息，记录着本次序列化的配置信息。
            使用特性来控制序列化过程优先级更高。
            </remarks>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatterHead.System#ICloneable#Clone">
            <summary>
            克隆
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatterHead.Clone">
            <summary>
            克隆
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.Magic">
            <summary>标识</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.Version">
            <summary>版本</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.FileVersion">
            <summary>文件版本</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.Config">
            <summary>配置信息</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.AssemblyName">
            <summary>汇编名</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.TypeName">
            <summary>类型名</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.Types">
            <summary>类型集合</summary>
            <remarks>支持序列化具体数据之前指定类型，存储的时候使用压缩编码的整数表示，也就是类型集合中的序号</remarks>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.RefObjects">
            <summary>引用对象集合</summary>
            <remarks>对于多次引用的对象，集中存储</remarks>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatterHead.Default">
            <summary>默认头部信息</summary>
        </member>
        <member name="T:NewLife.IO.BinaryReaderX">
            <summary>
            二进制协议读取器
            </summary>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.#ctor(System.IO.Stream)">
            <summary>
            构造
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadEncodedInt32">
            <summary>
            以压缩格式读取32位整数
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadEncodedInt64">
            <summary>
            以压缩格式读取64位整数
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.Support(System.Type)">
            <summary>
            是否支持指定类型
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadObject(System.Type)">
            <summary>
            从数据流中读取指定类型的对象
            </summary>
            <param name="type">类型</param>
            <returns>对象</returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.TryReadObject(System.Object,NewLife.Reflection.MemberInfoX,System.Type,System.Boolean,System.Boolean,System.Boolean,System.Object@)">
            <summary>
            尝试读取目标对象指定成员的值，通过委托方法递归处理成员
            </summary>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="type">成员类型，以哪一种类型读取</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <returns>是否读取成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.TryReadObject(System.Object,NewLife.Reflection.MemberInfoX,System.Type,System.Boolean,System.Boolean,System.Boolean,System.Object@,NewLife.IO.BinaryReaderX.ReadCallback)">
            <summary>
            尝试读取目标对象指定成员的值，处理基础类型、特殊类型、基础类型数组、特殊类型数组，通过委托方法处理成员
            </summary>
            <remarks>
            简单类型在value中返回，复杂类型直接填充target；
            </remarks>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="type">成员类型，以哪一种类型读取</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否读取成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadValue(System.Type,System.Boolean)">
            <summary>
            读取值类型数据
            </summary>
            <param name="type"></param>
            <param name="encodeInt"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.TryReadValue(System.Type,System.Boolean,System.Object@)">
            <summary>
            尝试读取值类型数据，返回是否读取成功
            </summary>
            <param name="type"></param>
            <param name="encodeInt"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.TryReadEnumerable(System.Object,NewLife.Reflection.MemberInfoX,System.Boolean,System.Boolean,System.Boolean,System.Object@)">
            <summary>
            尝试读取枚举
            </summary>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <returns>是否读取成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.TryReadEnumerable(System.Object,NewLife.Reflection.MemberInfoX,System.Boolean,System.Boolean,System.Boolean,System.Object@,NewLife.IO.BinaryReaderX.ReadCallback)">
            <summary>
            尝试读取枚举
            </summary>
            <remarks>重点和难点在于如果得知枚举元素类型，这里假设所有元素类型一致，否则实在无法处理</remarks>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否读取成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.TryReadEnumerable(System.Type,System.Type[],System.Boolean,System.Boolean,System.Boolean,System.Object@,NewLife.IO.BinaryReaderX.ReadCallback)">
            <summary>
            尝试读取枚举
            </summary>
            <remarks>重点和难点在于如果得知枚举元素类型，这里假设所有元素类型一致，否则实在无法处理</remarks>
            <param name="type">类型</param>
            <param name="elementTypes">元素类型数组</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否读取成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.TryReadX(System.Type,System.Object@)">
            <summary>
            扩展读取，反射查找合适的读取方法
            </summary>
            <param name="type"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadGuid">
            <summary>
            读取Guid
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadIPAddress">
            <summary>
            读取IPAddress
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadIPEndPoint">
            <summary>
            读取IPEndPoint
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryReaderX.ReadType">
            <summary>
            读取Type
            </summary>
            <returns></returns>
        </member>
        <member name="T:NewLife.IO.BinaryReaderX.ReadCallback">
            <summary>
            数据读取方法
            </summary>
            <param name="reader">读取器</param>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="type">成员类型，以哪一种类型读取</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolNonSerializedAttribute">
            <summary>
            不序列化指定字段或属性
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolAttribute">
            <summary>
            协议特性
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolAttribute.#ctor">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolAttribute.#ctor(NewLife.Serialization.Protocol.ConfigFlags)">
            <summary>
            初始化
            </summary>
            <param name="flag"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolAttribute.MergeTo(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            特性设置合并到设置信息
            </summary>
            <param name="config"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolAttribute.Equals(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            比较两个特性是否相等
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolAttribute.GetCustomAttributes``1(System.Reflection.MemberInfo)">
            <summary>
            获取自定义特性
            </summary>
            <param name="member"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolAttribute.GetCustomAttribute``1(System.Reflection.MemberInfo)">
            <summary>
            获取自定义特性
            </summary>
            <param name="member"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolAttribute.Flag">
            <summary>序列化标识</summary>
        </member>
        <member name="T:NewLife.Remoting.EntityMessage">
            <summary>
            实体消息
            </summary>
        </member>
        <member name="T:NewLife.Remoting.RemotingMessage">
            <summary>
            远程消息
            </summary>
        </member>
        <member name="T:NewLife.Messaging.Message">
            <summary>
            消息基类
            </summary>
        </member>
        <member name="T:NewLife.IO.BinaryAccessor">
            <summary>
            二进制数据访问器
            </summary>
        </member>
        <member name="T:NewLife.Reflection.FastIndexAccessor">
            <summary>
            快速索引器接口的默认实现
            </summary>
        </member>
        <member name="T:NewLife.Reflection.IIndexAccessor">
            <summary>
            索引器接访问口。
            该接口用于通过名称快速访问对象属性或字段（属性优先）。
            </summary>
        </member>
        <member name="P:NewLife.Reflection.IIndexAccessor.Item(System.String)">
            <summary>
            获取/设置 指定名称的属性或字段的值
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FastIndexAccessor.GetValue(System.Object,System.String)">
            <summary>
            获取目标对象指定属性字段的值
            </summary>
            <param name="target">目标对象</param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FastIndexAccessor.TryGetValue(System.Object,System.String,System.Object@)">
            <summary>
            尝试获取目标对象指定属性字段的值，返回是否成功
            </summary>
            <param name="target">目标对象</param>
            <param name="name"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FastIndexAccessor.GetValue``1(System.String)">
            <summary>
            获取目标对象指定属性字段的值
            </summary>
            <typeparam name="T"></typeparam>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FastIndexAccessor.TryGetValue``1(System.String,``0@)">
            <summary>
            尝试获取目标对象指定属性字段的值，返回是否成功
            </summary>
            <typeparam name="T"></typeparam>
            <param name="name"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FastIndexAccessor.SetValue(System.Object,System.String,System.Object)">
            <summary>
            设置目标对象指定属性字段的值
            </summary>
            <param name="target">目标对象</param>
            <param name="name"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Reflection.FastIndexAccessor.TrySetValue(System.Object,System.String,System.Object)">
            <summary>
            尝试设置目标对象指定属性字段的值，返回是否成功
            </summary>
            <param name="target">目标对象</param>
            <param name="name"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.FastIndexAccessor.Item(System.String)">
            <summary>
            获取/设置 字段值。
            一个索引，反射实现。
            派生实体类可重写该索引，以避免发射带来的性能损耗
            </summary>
            <param name="name">字段名</param>
            <returns></returns>
        </member>
        <member name="T:NewLife.IO.IBinaryAccessor">
            <summary>
            二进制数据访问器接口，用于把对象数据写入到写入器，或者从读取器中读取数据到对象
            </summary>
        </member>
        <member name="M:NewLife.IO.IBinaryAccessor.Read(NewLife.IO.BinaryReaderX)">
            <summary>
            从读取器中读取数据到对象
            </summary>
            <param name="reader"></param>
        </member>
        <member name="M:NewLife.IO.IBinaryAccessor.Write(NewLife.IO.BinaryWriterX)">
            <summary>
            把对象数据写入到写入器
            </summary>
            <param name="writer"></param>
        </member>
        <member name="M:NewLife.IO.BinaryAccessor.Read(NewLife.IO.BinaryReaderX)">
            <summary>
            从读取器中读取数据到对象
            </summary>
            <param name="reader">读取器</param>
        </member>
        <member name="M:NewLife.IO.BinaryAccessor.ReadMember(NewLife.IO.BinaryReaderX,System.Object,NewLife.Reflection.MemberInfoX,System.Type,System.Boolean,System.Boolean,System.Boolean,System.Object@,NewLife.IO.BinaryReaderX.ReadCallback)">
            <summary>
            尝试读取目标对象指定成员的值，处理基础类型、特殊类型、基础类型数组、特殊类型数组，通过委托方法处理成员
            </summary>
            <remarks>
            简单类型在value中返回，复杂类型直接填充target；
            </remarks>
            <param name="reader">读取器</param>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="type">成员类型，以哪一种类型读取</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否读取成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryAccessor.CreateInstance(System.Type)">
            <summary>
            创建指定类型的实例
            </summary>
            <param name="type">类型</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryAccessor.Write(NewLife.IO.BinaryWriterX)">
            <summary>
            把对象数据写入到写入器
            </summary>
            <param name="writer">写入器</param>
        </member>
        <member name="M:NewLife.IO.BinaryAccessor.WriteMember(NewLife.IO.BinaryWriterX,System.Object,NewLife.Reflection.MemberInfoX,System.Boolean,System.Boolean,System.Boolean,NewLife.IO.BinaryWriterX.WriteCallback)">
            <summary>
            把对象写入数据流，处理基础类型、特殊类型、基础类型数组、特殊类型数组，通过委托方法处理成员
            </summary>
            <param name="writer">写入器</param>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="F:NewLife.Messaging.Message.StreamHandlerName">
            <summary>
            数据流处理器名称
            </summary>
        </member>
        <member name="M:NewLife.Messaging.Message.Init">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:NewLife.Messaging.Message.Serialize(System.IO.Stream)">
            <summary>
            序列化当前消息到流中
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:NewLife.Messaging.Message.ToArray">
            <summary>
            序列化为字节数组
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.Message.WritePacket(System.IO.Stream)">
            <summary>
            消息序列化后打包，一次性写入指定流，防止数据因序列化中多次写入而分片发出（比如UDP网络）
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:NewLife.Messaging.Message.Deserialize(System.IO.Stream)">
            <summary>
            反序列化
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.Message.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Messaging.Message.ID">
            <summary>消息唯一编号</summary>
        </member>
        <member name="P:NewLife.Remoting.RemotingMessage.ID">
            <summary>
            消息唯一编码
            </summary>
        </member>
        <member name="P:NewLife.Remoting.RemotingMessage.MessageType">
            <summary>消息类型</summary>
        </member>
        <member name="M:NewLife.Remoting.EntityMessage.#ctor">
            <summary>
            实例化
            </summary>
        </member>
        <member name="M:NewLife.Remoting.EntityMessage.#ctor(System.Object)">
            <summary>
            使用实体对象来实例化
            </summary>
            <param name="entity"></param>
        </member>
        <member name="M:NewLife.Remoting.EntityMessage.ReadMember(NewLife.IO.BinaryReaderX,System.Object,NewLife.Reflection.MemberInfoX,System.Type,System.Boolean,System.Boolean,System.Boolean,System.Object@,NewLife.IO.BinaryReaderX.ReadCallback)">
            <summary>
            尝试读取目标对象指定成员的值，处理基础类型、特殊类型、基础类型数组、特殊类型数组，通过委托方法处理成员
            </summary>
            <remarks>
            简单类型在value中返回，复杂类型直接填充target；
            </remarks>
            <param name="reader">读取器</param>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="type">成员类型，以哪一种类型读取</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="value">成员值</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否读取成功</returns>
        </member>
        <member name="P:NewLife.Remoting.EntityMessage.MessageType">
            <summary>消息类型</summary>
        </member>
        <member name="P:NewLife.Remoting.EntityMessage.EntityType">
            <summary>实体类型</summary>
        </member>
        <member name="P:NewLife.Remoting.EntityMessage.Entity">
            <summary>实体对象</summary>
        </member>
        <member name="T:NewLife.Messaging.MessageExceptionOption">
            <summary>
            消息异常选项
            </summary>
        </member>
        <member name="F:NewLife.Messaging.MessageExceptionOption.Ignore">
            <summary>
            忽略
            </summary>
        </member>
        <member name="F:NewLife.Messaging.MessageExceptionOption.Throw">
            <summary>
            抛出
            </summary>
        </member>
        <member name="F:NewLife.Messaging.MessageExceptionOption.SaveAsMessage">
            <summary>
            保存为异常消息
            </summary>
        </member>
        <member name="T:NewLife.DisposeBase">
            <summary>
            具有销毁资源处理的抽象基类
            </summary>
        </member>
        <member name="M:NewLife.DisposeBase.Dispose">
            <summary>
            释放资源
            </summary>
        </member>
        <member name="M:NewLife.DisposeBase.Dispose(System.Boolean)">
            <summary>
            释放资源，参数表示是否由Dispose调用。该方法保证OnDispose只被调用一次！
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="M:NewLife.DisposeBase.OnDispose(System.Boolean)">
            <summary>
            子类重载实现资源释放逻辑时必须首先调用基类方法
            </summary>
            <param name="disposing">从Dispose调用（释放所有资源）还是析构函数调用（释放非托管资源）</param>
        </member>
        <member name="M:NewLife.DisposeBase.Finalize">
            <summary>
            析构函数
            </summary>
        </member>
        <member name="P:NewLife.DisposeBase.Disposed">
            <summary>是否已经释放</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolTest">
            <summary>
            测试
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolTest.Test">
            <summary>
            测试
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolTest.Response">
            <summary>
            邀请响应
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.IProtocolSerializable">
            <summary>
            自定义序列化接口
            </summary>
            <remarks>
            该接口支持多层实现，向下延伸，下层优先。
            某个类实现该接口后，该类的所有属性，以及所有子孙类属性都将有效
            </remarks>
        </member>
        <member name="M:NewLife.Serialization.Protocol.IProtocolSerializable.OnSerializing(NewLife.Serialization.Protocol.WriteContext)">
            <summary>
            序列化前触发
            </summary>
            <param name="context"></param>
            <returns>是否允许序列化当前字段或属性</returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.IProtocolSerializable.OnSerialized(NewLife.Serialization.Protocol.WriteContext)">
            <summary>
            序列化后触发
            </summary>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.IProtocolSerializable.OnDeserializing(NewLife.Serialization.Protocol.ReadContext)">
            <summary>
            反序列化前触发
            </summary>
            <param name="context"></param>
            <returns>是否允许反序列化当前字段或属性</returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.IProtocolSerializable.OnDeserialized(NewLife.Serialization.Protocol.ReadContext)">
            <summary>
            反序列化后触发
            </summary>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.IProtocolSerializable.OnCreateInstance(NewLife.Serialization.Protocol.ReadContext,System.Type)">
            <summary>
            为指定类型创建实例时触发
            </summary>
            <param name="context"></param>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTest.Response.iii">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTest.Response.i64">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTest.Response.time">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTest.Response.Str">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTest.Response.Private">
            <summary>对方的私有地址</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTest.Response.Public">
            <summary>我的共有地址</summary>
        </member>
        <member name="T:NewLife.Serialization.OnProtocolCreateInstanceAttribute">
            <summary>
            创建实例时调用的方法
            </summary>
        </member>
        <member name="T:NewLife.Serialization.OnProtocolDeserializedAttribute">
            <summary>
            反序列化后执行该方法
            </summary>
        </member>
        <member name="T:NewLife.Serialization.OnProtocolDeserializingAttribute">
            <summary>
            反序列化前执行该方法
            </summary>
        </member>
        <member name="T:NewLife.Serialization.OnProtocolSerializedAttribute">
            <summary>
            序列化后执行该方法
            </summary>
        </member>
        <member name="T:NewLife.Serialization.OnProtocolSerializingAttribute">
            <summary>
            序列化前执行该方法
            </summary>
        </member>
        <member name="T:NewLife.Security.Crc32">
             <summary>
             Generate a table for a byte-wise 32-bit CRC calculation on the polynomial:
             x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
            
             Polynomials over GF(2) are represented in binary, one bit per coefficient,
             with the lowest powers in the most significant bit.  Then adding polynomials
             is just exclusive-or, and multiplying a polynomial by x is a right shift by
             one.  If we call the above polynomial p, and represent a byte as the
             polynomial q, also with the lowest power in the most significant bit (so the
             byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
             where a mod b means the remainder after dividing a by b.
            
             This calculation is done using the shift-register method of multiplying and
             taking the remainder.  The register is initialized to zero, and for each
             incoming bit, x^32 is added mod p to the register if the bit is a one (where
             x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
             x (which is shifting right by one and adding x^32 mod p if the bit shifted
             out is a one).  We start with the highest power (least significant bit) of
             q and repeat for all eight bits of q.
            
             The table is simply the CRC of all possible eight bit values.  This is all
             the information needed to generate CRC's on data a byte at a time for all
             combinations of CRC register values and incoming bytes.
             </summary>
        </member>
        <member name="F:NewLife.Security.Crc32.crc">
            <summary>
            The crc data checksum so far.
            </summary>
        </member>
        <member name="M:NewLife.Security.Crc32.Reset">
            <summary>
            Resets the CRC32 data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:NewLife.Security.Crc32.Update(System.Int32)">
            <summary>
            Updates the checksum with the int bval.
            </summary>
            <param name = "value">
            the byte is taken as the lower 8 bits of value
            </param>
        </member>
        <member name="M:NewLife.Security.Crc32.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            buffer an array of bytes
            </param>
        </member>
        <member name="M:NewLife.Security.Crc32.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name = "buffer">
            The buffer which contains the data
            </param>
            <param name = "offset">
            The offset in the buffer where the data starts
            </param>
            <param name = "count">
            The number of data bytes to update the CRC with.
            </param>
        </member>
        <member name="P:NewLife.Security.Crc32.Value">
            <summary>
            Returns the CRC32 data checksum computed so far.
            </summary>
        </member>
        <member name="T:NewLife.Remoting.RemotingMessageType">
            <summary>
            远程消息类型
            </summary>
        </member>
        <member name="F:NewLife.Remoting.RemotingMessageType.Method">
            <summary>
            方法消息
            </summary>
        </member>
        <member name="F:NewLife.Remoting.RemotingMessageType.Entity">
            <summary>
            实体消息
            </summary>
        </member>
        <member name="T:NewLife.Reflection.AssemblyX">
            <summary>
            程序集辅助类。使用Create创建，保证每个程序集只有一个辅助类
            </summary>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.Create(System.Reflection.Assembly)">
            <summary>
            创建程序集辅助对象
            </summary>
            <param name="asm"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.GetCustomAttribute``1">
            <summary>
            获取自定义属性
            </summary>
            <typeparam name="TAttribute"></typeparam>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.GetCustomAttributeValue``2">
            <summary>
            获取自定义属性的值。可用于ReflectionOnly加载的程序集
            </summary>
            <typeparam name="TAttribute"></typeparam>
            <typeparam name="TResult"></typeparam>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.FindPlugins``1">
            <summary>
            查找插件
            </summary>
            <typeparam name="TPlugin"></typeparam>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.FindPlugins(System.Type)">
            <summary>
            查找插件，带缓存
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.FindAllPlugins(System.Type)">
            <summary>
            查找所有非系统程序集中的所有插件
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.GetAssemblies(System.AppDomain)">
            <summary>
            获取指定程序域所有程序集的辅助类
            </summary>
            <param name="domain"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.GetAssemblies">
            <summary>
            获取当前程序域所有程序集的辅助类
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.ReflectionOnlyGetAssemblies(System.AppDomain)">
            <summary>
            只反射加载有效路径（应用程序是当前路径，Web是Bin目录）的所有程序集
            </summary>
            <param name="domain"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.ReflectionOnlyGetAssemblies">
            <summary>
            获取当前程序域所有程序集的辅助类
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.ReflectionOnlyLoad(System.String)">
            <summary>
            只反射加载指定路径的所有程序集
            </summary>
            <param name="path"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.ReflectionOnlyLoad">
            <summary>
            只反射加载有效路径（应用程序是当前路径，Web是Bin目录）的所有程序集
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AssemblyX.Equal(System.Reflection.Assembly,System.Reflection.Assembly)">
            <summary>
            判断两个程序集是否相同，避免引用加载和执行上下文加载的相同程序集显示不同
            </summary>
            <param name="asm1"></param>
            <param name="asm2"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Asm">
            <summary>程序集</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Name">
            <summary>名称</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Version">
            <summary>
            程序集版本
            </summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Title">
            <summary>程序集标题</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.FileVersion">
            <summary>
            文件版本
            </summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Compile">
            <summary>编译时间</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Company">
            <summary>公司名称</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Description">
            <summary>说明</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.Types">
            <summary>类型集合，当前程序集的所有类型</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.TypeXs">
            <summary>类型集合，当前程序集的所有类型</summary>
        </member>
        <member name="P:NewLife.Reflection.AssemblyX.IsSystemAssembly">
            <summary>
            是否系统程序集
            </summary>
        </member>
        <member name="T:NewLife.IO.IStreamHandler">
            <summary>
            数据流处理器接口
            </summary>
        </member>
        <member name="M:NewLife.IO.IStreamHandler.Process(System.IO.Stream)">
            <summary>
            处理数据流
            </summary>
            <param name="stream">待处理数据流</param>
            <returns>转发给下一个处理器的数据流，如果不想让后续处理器处理，返回空</returns>
        </member>
        <member name="P:NewLife.IO.IStreamHandler.IsReusable">
            <summary>
            是否可以重用。
            </summary>
        </member>
        <member name="T:NewLife.IO.StreamHandler">
            <summary>
            数据流处理器
            </summary>
        </member>
        <member name="M:NewLife.IO.StreamHandler.Process(System.IO.Stream)">
            <summary>
            处理数据流
            </summary>
            <param name="stream"></param>
            <returns>转发给下一个处理器的数据流，如果不想让后续处理器处理，返回空</returns>
        </member>
        <member name="M:NewLife.IO.StreamHandler.Register(System.String,NewLife.IO.IStreamHandler,System.Boolean)">
            <summary>
            注册数据流处理器。
            数据流到达时将进入指定通道的每一个处理器。
            不同通道名称的处理器互不干扰。
            不提供注册到指定位置的功能，如果需要，再以多态方式实现。
            </summary>
            <param name="name">通道名称，用于区分数据流总线</param>
            <param name="handler">数据流处理器</param>
            <param name="cover">是否覆盖原有同类型处理器</param>
        </member>
        <member name="M:NewLife.IO.StreamHandler.QueryRegister(System.String)">
            <summary>
            查询注册，返回指定通道的处理器数组。
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.StreamHandler.GetHandler">
            <summary>
            获取配置文件指定的处理器
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.StreamHandler.LoadConfig">
            <summary>
            从配置文件中加载工厂
            </summary>
        </member>
        <member name="M:NewLife.IO.StreamHandler.Process(System.String,System.IO.Stream)">
            <summary>
            处理数据流。Http、Tcp、Udp等所有数据流都将到达这里，多种传输方式汇聚于此，由数据流总线统一处理！
            </summary>
            <param name="name"></param>
            <param name="stream"></param>
        </member>
        <member name="P:NewLife.IO.StreamHandler.IsReusable">
            <summary>
            是否可以重用
            </summary>
        </member>
        <member name="T:NewLife.IO.StreamHttpHandler">
            <summary>
            数据流Http处理器。可以在web.config中配置一个处理器指向该类。
            </summary>
        </member>
        <member name="M:NewLife.IO.StreamHttpHandler.ProcessRequest(System.Web.HttpContext)">
            <summary>
            处理请求
            </summary>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.IO.StreamHttpHandler.OnProcess(System.Web.HttpContext)">
            <summary>
            处理请求
            </summary>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.IO.StreamHttpHandler.GetName(System.Web.HttpContext)">
            <summary>
            从Http上下文获取数据流总线名称
            </summary>
            <param name="context"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.StreamHttpHandler.GetStream(System.Web.HttpContext)">
            <summary>
            从Http上下文获取数据流
            </summary>
            <param name="context"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.StreamHttpHandler.ToHex(System.Byte[])">
            <summary>
            加密
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.StreamHttpHandler.FromHex(System.String)">
            <summary>
            解密
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.IO.StreamHttpHandler.IsReusable">
            <summary>
            是否可以重用
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.FormatterConfig">
            <summary>
            协议序列化配置
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.GetFlag(NewLife.Serialization.Protocol.ConfigFlags)">
            <summary>
            获取标识位
            </summary>
            <param name="flag"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.SetFlag(NewLife.Serialization.Protocol.ConfigFlags,System.Boolean)">
            <summary>
            设置标识位
            </summary>
            <param name="flag"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.System#ICloneable#Clone">
            <summary>
            克隆
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.Clone">
            <summary>
            克隆
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.Merge(NewLife.Serialization.Protocol.ProtocolAttribute[])">
            <summary>
            合并特性
            </summary>
            <param name="atts"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.CloneAndMerge(System.Reflection.MemberInfo)">
            <summary>
            克隆自身，合并指定成员的协议特性
            </summary>
            <param name="member"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.IsSystemType(System.Type)">
            <summary>
            是否系统类型
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.FormatterConfig.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.Size">
            <summary>大小</summary>
            <remarks>默认为0时，首先序列化一个压缩整数作为数组元素个数，再序列化每一个项；设置了大小后，不再压缩元素个数，而是以特性指定的大小为准</remarks>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.Flag">
            <summary>标识</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.NoHead">
            <summary>
            是否没有头部
            </summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.SerialProperty">
            <summary>是否仅序列化属性</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.NotNull">
            <summary>
            是否非空
            </summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.EncodeInt">
            <summary>
            是否压缩整数
            </summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.UseRefObject">
            <summary>是否使用对象引用</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.FormatterConfig.Default">
            <summary>默认配置信息</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolSerializingEventArgs">
            <summary>
            协议序列化事件参数
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolSerializingEventArgs.#ctor(NewLife.Serialization.Protocol.WriteContext)">
            <summary>
            构造
            </summary>
            <param name="context"></param>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolSerializingEventArgs.Context">
            <summary>上下文</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolCreateInstanceEventArgs">
            <summary>
            创建实例触发事件参数
            </summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolCreateInstanceEventArgs.Context">
            <summary>上下文</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolCreateInstanceEventArgs.Type">
            <summary>要创建实例的类型</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolCreateInstanceEventArgs.Obj">
            <summary>创建的对象</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ConfigFlags">
            <summary>
            序列化标识
            </summary>
        </member>
        <member name="F:NewLife.Serialization.Protocol.ConfigFlags.NoHead">
            <summary>
            没有头部
            </summary>
            <remarks>
            没有头部的序列化只能采用默认配置
            </remarks>
        </member>
        <member name="F:NewLife.Serialization.Protocol.ConfigFlags.SerialProperty">
            <summary>
            序列化属性
            </summary>
            <remarks>
            默认情况下只序列化字段，但是由特性控制的是否序列化优先级更高，该标识仅对没有任何特性的字段或属性有效
            </remarks>
        </member>
        <member name="F:NewLife.Serialization.Protocol.ConfigFlags.EncodeInt">
            <summary>
            压缩整数
            </summary>
            <remarks>
            使用压缩编码的整数，更节省空间
            </remarks>
        </member>
        <member name="F:NewLife.Serialization.Protocol.ConfigFlags.NotNull">
            <summary>
            非空
            </summary>
            <remarks>
            序列化引用对象时，默认会先写入一个字节表示该对象是否为空，对于该特性标识的非空对象，不再写入该标识字节
            </remarks>
        </member>
        <member name="F:NewLife.Serialization.Protocol.ConfigFlags.UseRefObject">
            <summary>
            使用引用对象
            </summary>
            <remarks>
            使用引用对象不仅可以避免一个对象因多处引用而序列化多次，还可以避免循环引用
            </remarks>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolEncodeIntAttribute">
            <summary>
            是否使用压缩编码的整数进行序列号
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolEncodeIntAttribute.#ctor(System.Boolean)">
            <summary>
            构造
            </summary>
            <param name="encodeInt"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolEncodeIntAttribute.#ctor">
            <summary>
            构造
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolEncodeIntAttribute.MergeTo(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolEncodeIntAttribute.Equals(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolEncodeIntAttribute.EncodeInt">
            <summary>是否使用压缩编码整数</summary>
        </member>
        <member name="T:NewLife.Messaging.ExceptionMessage">
            <summary>
            异常消息
            </summary>
        </member>
        <member name="M:NewLife.Messaging.ExceptionMessage.#ctor">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:NewLife.Messaging.ExceptionMessage.#ctor(System.Exception)">
            <summary>
            初始化
            </summary>
            <param name="ex"></param>
        </member>
        <member name="P:NewLife.Messaging.ExceptionMessage.ID">
            <summary>
            消息编号
            </summary>
        </member>
        <member name="P:NewLife.Messaging.ExceptionMessage.Error">
            <summary>异常</summary>
        </member>
        <member name="T:NewLife.IO.StreamClient">
            <summary>
            数据流客户端，用于与服务端的数据流处理器通讯
            </summary>
        </member>
        <member name="M:NewLife.IO.StreamClient.#ctor">
            <summary>
            实例化
            </summary>
        </member>
        <member name="M:NewLife.IO.StreamClient.#ctor(System.Uri)">
            <summary>
            实例化
            </summary>
            <param name="uri"></param>
        </member>
        <member name="M:NewLife.IO.StreamClient.#ctor(System.String)">
            <summary>
            实例化
            </summary>
            <param name="url"></param>
        </member>
        <member name="M:NewLife.IO.StreamClient.Send(System.Byte[])">
            <summary>
            同步发送数据
            </summary>
            <param name="data">待发送数据</param>
            <returns>服务端响应数据</returns>
        </member>
        <member name="M:NewLife.IO.StreamClient.SendAsync(System.Byte[])">
            <summary>
            异步发送数据，服务端响应数据将由数据流总线处理
            </summary>
            <param name="data">待发送数据</param>
        </member>
        <member name="M:NewLife.IO.StreamClient.Process(System.IO.Stream)">
            <summary>
            处理数据流
            </summary>
            <param name="stream"></param>
        </member>
        <member name="F:NewLife.IO.StreamClient._Stream">
            <summary>内部数据流</summary>
        </member>
        <member name="M:NewLife.IO.StreamClient.GetStream">
            <summary>
            获取用于收发数据的数据流
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.IO.StreamClient.Uri">
            <summary>服务端地址</summary>
        </member>
        <member name="P:NewLife.IO.StreamClient.StreamHandlerName">
            <summary>数据流总线名称</summary>
        </member>
        <member name="T:NewLife.IO.StreamClient.InternalStream">
            <summary>
            内部数据流。重写输入行为，然后使用一个内存流作为输出。
            </summary>
        </member>
        <member name="T:NewLife.IO.ReadWriteStream">
            <summary>
            读写流。内部包含输入流和输出流两个流，实际读取从输入流读取，写入则写入到输出流
            </summary>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.#ctor(System.IO.Stream,System.IO.Stream)">
            <summary>
            初始化
            </summary>
            <param name="inputStream"></param>
            <param name="outputStream"></param>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.Flush">
            <summary>
            刷新输出流写入的数据
            </summary>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            从输入流中读取数据
            </summary>
            <param name="buffer"></param>
            <param name="offset"></param>
            <param name="count"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            在输入流中搜索
            </summary>
            <param name="offset"></param>
            <param name="origin"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.SetLength(System.Int64)">
            <summary>
            设置输出流的长度
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            把数据写入到输出流中
            </summary>
            <param name="buffer"></param>
            <param name="offset"></param>
            <param name="count"></param>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
            <summary>
            开始异步读操作
            </summary>
            <param name="buffer"></param>
            <param name="offset"></param>
            <param name="count"></param>
            <param name="callback"></param>
            <param name="state"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.EndRead(System.IAsyncResult)">
            <summary>
            等待挂起的异步读完成
            </summary>
            <param name="asyncResult"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
            <summary>
            开始异步写操作
            </summary>
            <param name="buffer"></param>
            <param name="offset"></param>
            <param name="count"></param>
            <param name="callback"></param>
            <param name="state"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.EndWrite(System.IAsyncResult)">
            <summary>
            等待挂起的异步写完成
            </summary>
            <param name="asyncResult"></param>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.Peek">
            <summary>
            读取一个字节，不移动指针
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteStream.CheckArgument(System.Byte[],System.Int32,System.Int32)">
            <summary>
            检查参数
            </summary>
            <param name="buffer"></param>
            <param name="offset"></param>
            <param name="count"></param>
        </member>
        <member name="P:NewLife.IO.ReadWriteStream.InputStream">
            <summary>输入流</summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteStream.OutputStream">
            <summary>输出流</summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteStream.CanRead">
            <summary>
            输入流是否可读
            </summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteStream.CanSeek">
            <summary>
            输入流是否可移动
            </summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteStream.CanWrite">
            <summary>
            输出流是否可写
            </summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteStream.Length">
            <summary>
            输入流总长度
            </summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteStream.Position">
            <summary>
            输入流位置
            </summary>
        </member>
        <member name="P:NewLife.IO.StreamClient.InternalStream.Client">
            <summary>数据流客户端</summary>
        </member>
        <member name="T:NewLife.Collections.SingleListNode`1">
            <summary>
            单向链表节点
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:NewLife.Collections.SingleListNode`1.#ctor">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:NewLife.Collections.SingleListNode`1.#ctor(`0)">
            <summary>
            使用一个对象初始化一个节点
            </summary>
            <param name="item"></param>
        </member>
        <member name="M:NewLife.Collections.SingleListNode`1.#ctor(`0,NewLife.Collections.SingleListNode{`0})">
            <summary>
            使用一个对象和下一个节点初始化一个节点
            </summary>
            <param name="item"></param>
            <param name="next"></param>
        </member>
        <member name="M:NewLife.Collections.SingleListNode`1.Contain(`0)">
            <summary>
            在单向链表中查找指定项
            </summary>
            <param name="item"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.SingleListNode`1.Remove(`0)">
            <summary>
            在单向链表中移除指定项
            </summary>
            <param name="item">指定项</param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Collections.SingleListNode`1.Item">
            <summary>元素</summary>
        </member>
        <member name="P:NewLife.Collections.SingleListNode`1.Next">
            <summary>下一个节点</summary>
        </member>
        <member name="T:NewLife.Log.XTrace">
            <summary>
            日志类，包含跟踪调试功能
            </summary>
        </member>
        <member name="F:NewLife.Log.XTrace.isFirst">
            <summary>
            是否当前进程的第一次写日志
            </summary>
        </member>
        <member name="M:NewLife.Log.XTrace.InitLog">
            <summary>
            初始化日志记录文件
            </summary>
        </member>
        <member name="M:NewLife.Log.XTrace.CloseWriter(System.Object)">
            <summary>
            停止日志
            </summary>
        </member>
        <member name="M:NewLife.Log.XTrace.PerformWriteLog(System.Object)">
            <summary>
            使用线程池线程异步执行日志写入动作
            </summary>
            <param name="obj"></param>
        </member>
        <member name="M:NewLife.Log.XTrace.WriteLine(System.String)">
            <summary>
            输出日志
            </summary>
            <param name="msg">信息</param>
        </member>
        <member name="M:NewLife.Log.XTrace.DebugStack">
            <summary>
            堆栈调试。
            输出堆栈信息，用于调试时处理调用上下文。
            本方法会造成大量日志，请慎用。
            </summary>
        </member>
        <member name="M:NewLife.Log.XTrace.DebugStack(System.Int32)">
            <summary>
            堆栈调试。
            </summary>
            <param name="maxNum">最大捕获堆栈方法数</param>
        </member>
        <member name="M:NewLife.Log.XTrace.WriteLine(System.String,System.Object[])">
            <summary>
            写日志
            </summary>
            <param name="format"></param>
            <param name="args"></param>
        </member>
        <member name="P:NewLife.Log.XTrace.LogPath">
            <summary>
            日志目录
            </summary>
        </member>
        <member name="E:NewLife.Log.XTrace.OnWriteLog">
            <summary>
            写日志事件。绑定该事件后，XTrace将不再把日志写到日志文件中去。
            </summary>
        </member>
        <member name="P:NewLife.Log.XTrace.Debug">
            <summary>是否调试。如果代码指定了值，则只会使用代码指定的值，否则每次都读取配置。</summary>
        </member>
        <member name="T:NewLife.Threading.ThreadTask">
            <summary>
            线程任务
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadTask.#ctor(System.Threading.WaitCallback,System.Object)">
            <summary>
            构造一个线程任务
            </summary>
            <param name="method">任务方法</param>
            <param name="argument">任务参数</param>
        </member>
        <member name="M:NewLife.Threading.ThreadTask.#ctor(System.Threading.WaitCallback,System.Threading.WaitCallback,System.Object)">
            <summary>
            构造一个线程任务
            </summary>
            <param name="method">任务方法</param>
            <param name="abortMethod">任务被取消时执行的方法</param>
            <param name="argument">任务参数</param>
        </member>
        <member name="P:NewLife.Threading.ThreadTask.ID">
            <summary>唯一编号</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadTask.Method">
            <summary>任务方法</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadTask.Argument">
            <summary>任务参数</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadTask.AbortMethod">
            <summary>取消任务时执行的方法</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadTask.newID">
            <summary>
            取一个新编号
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.WriteContext">
            <summary>
            写入上下文
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ReadWriteContext">
            <summary>
            读写上下文
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ReadWriteContext.Create">
            <summary>
            创建当前对象的新实例
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ReadWriteContext.Clone(System.Object,System.Type,System.Reflection.MemberInfo)">
            <summary>
            使用新参数克隆当前对象
            </summary>
            <param name="data"></param>
            <param name="type"></param>
            <param name="member"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ReadWriteContext.Clone(System.Object,System.Type,System.Reflection.MemberInfo,System.String)">
            <summary>
            使用新参数克隆当前对象
            </summary>
            <param name="data"></param>
            <param name="type"></param>
            <param name="member"></param>
            <param name="nodeName"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ReadWriteContext.GetCustomInterface">
            <summary>
            获取自定义序列化接口，向上递归
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ReadWriteContext.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadWriteContext.Formatter">
            <summary>序列化器</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadWriteContext.Config">
            <summary>设置</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadWriteContext.Node">
            <summary>树形节点</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadWriteContext.Data">
            <summary>读写的对象</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadWriteContext.Type">
            <summary>类型</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadWriteContext.Objects">
            <summary>对象集合。在序列化中，一个对象的多次引用只序列化一份，其它的使用引用计数</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadWriteContext.Parent">
            <summary>
            上一级上下文，依赖于Node节点目录树实现
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.WriteContext.Create">
            <summary>
            创建当前对象的新实例
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.WriteContext.Clone(System.Object,System.Type,System.Reflection.MemberInfo)">
            <summary>
            已重载。
            </summary>
            <param name="data"></param>
            <param name="type"></param>
            <param name="member"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.WriteContext.Writer">
            <summary>写入器</summary>
        </member>
        <member name="T:NewLife.WeakEventHandler`1">
            <summary>
            弱引用事件
            </summary>
            <remarks>
            很多绑定事件的场合，并不适合取消绑定，这就造成了事件资源无法得到回收。
            更加麻烦的是，事件本身除了包含事件处理方法外，还会包含目标对象，也就导致目标对象无法得到释放。
            弱引用事件的原理是把目标对象与事件处理方法分拆开来，使用弱引用来引用目标对象，保证目标对象能够得到有效的释放。
            触发弱引用事件时，首先判断目标对象是否可用，因为其可能已经被GC回收，然后再通过快速访问方法调用事件处理方法。
            也许有人会问，如果目标对象不可用怎么办？岂不是无法执行事件处理方法了？
            我们换一个角度来看，既然目标对象都已经不存在了，它绑定的事件自然也就无需过问了！
            </remarks>
            <typeparam name="TEventArgs"></typeparam>
        </member>
        <member name="F:NewLife.WeakEventHandler`1.Target">
            <summary>
            目标对象。弱引用，使得调用方对象可以被GC回收
            </summary>
        </member>
        <member name="F:NewLife.WeakEventHandler`1.Method">
            <summary>
            委托方法
            </summary>
        </member>
        <member name="F:NewLife.WeakEventHandler`1.Handler">
            <summary>
            经过包装的新的委托
            </summary>
        </member>
        <member name="F:NewLife.WeakEventHandler`1.UnHandler">
            <summary>
            取消注册的委托
            </summary>
        </member>
        <member name="F:NewLife.WeakEventHandler`1.Once">
            <summary>
            是否只使用一次，如果只使用一次，执行委托后马上取消注册
            </summary>
        </member>
        <member name="M:NewLife.WeakEventHandler`1.#ctor(System.EventHandler{`0},System.Action{System.EventHandler{`0}},System.Boolean)">
            <summary>
            使用事件处理器、取消注册回调、是否一次性事件来初始化
            </summary>
            <param name="handler"></param>
            <param name="unHandler"></param>
            <param name="once"></param>
        </member>
        <member name="M:NewLife.WeakEventHandler`1.Invoke(System.Object,`0)">
            <summary>
            调用委托
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:NewLife.WeakEventHandler`1.op_Implicit(NewLife.WeakEventHandler{`0})~System.EventHandler{`0}">
            <summary>
            把弱引用事件处理器转换为普通事件处理器
            </summary>
            <param name="handler"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.WeakEventHandler`1.Combine(System.EventHandler{`0}@)">
            <summary>
            绑定
            </summary>
            <param name="handler"></param>
        </member>
        <member name="M:NewLife.WeakEventHandler`1.Remove(System.EventHandler{`0}@,System.EventHandler{`0})">
            <summary>
            移除
            </summary>
            <param name="handler"></param>
            <param name="value"></param>
        </member>
        <member name="T:NewLife.Xml.XmlEntity`1">
            <summary>
            XML实体基类
            <remarks>主要提供数据实体和XML文件之间的映射功能</remarks>
            </summary>
        </member>
        <member name="M:NewLife.Xml.XmlEntity`1.Load(System.String)">
            <summary>
            从一段XML文本中加载对象
            </summary>
            <param name="xml"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.XmlEntity`1.LoadFile(System.String)">
            <summary>
            从一个XML文件中加载对象
            </summary>
            <param name="filename"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.XmlEntity`1.ToXml">
            <summary>
            输出XML
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.XmlEntity`1.ToXml(System.String,System.String)">
            <summary>
            输出Xml
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.XmlEntity`1.ToInnerXml">
            <summary>
            输出内部XML
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.XmlEntity`1.Save(System.String)">
            <summary>
            保存到文件中
            </summary>
            <param name="filename"></param>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolTreeNode">
            <summary>
            协议树节点
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolTreeNode.#ctor(System.String,System.Type)">
            <summary>
            构造
            </summary>
            <param name="name"></param>
            <param name="type"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolTreeNode.Add(System.String,System.Type)">
            <summary>
            添加
            </summary>
            <param name="name"></param>
            <param name="type"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolTreeNode.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Name">
            <summary>名称</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Type">
            <summary>类型</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Depth">
            <summary>深度</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Parent">
            <summary>父亲节点</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Context">
            <summary>上下文</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Nodes">
            <summary>子节点</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Path">
            <summary>
            路径
            </summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolTreeNode.Top">
            <summary>
            顶级节点
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolSerialPropertyAttribute">
            <summary>
            是否把属性作为主要序列化对象
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolSerialPropertyAttribute.#ctor(System.Boolean)">
            <summary>
            构造
            </summary>
            <param name="serialProperty"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolSerialPropertyAttribute.#ctor">
            <summary>
            构造
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolSerialPropertyAttribute.MergeTo(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolSerialPropertyAttribute.Equals(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolSerialPropertyAttribute.SerialProperty">
            <summary>
            序列化属性
            </summary>
            <remarks>
            默认情况下只序列化字段，但是由特性控制的是否序列化优先级更高，该标识仅对没有任何特性的字段或属性有效
            </remarks>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolArrayAttribute">
            <summary>
            协议数组元素
            </summary>
            <remarks>
            该特性仅对数据及实现了IEnumerable接口的字段或属性有效
            </remarks>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolArrayAttribute.#ctor(System.Int32)">
            <summary>
            构造
            </summary>
            <param name="size"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolArrayAttribute.MergeTo(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolArrayAttribute.Equals(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolArrayAttribute.Size">
            <summary>大小</summary>
            <remarks>默认为0时，首先序列化一个压缩整数作为数组元素个数，再序列化每一个项；设置了大小后，不再压缩元素个数，而是以特性指定的大小为准</remarks>
        </member>
        <member name="T:NewLife.Common.IdentityCard">
            <summary>
            身份证
            </summary>
        </member>
        <member name="M:NewLife.Common.IdentityCard.#ctor">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:NewLife.Common.IdentityCard.Valid(System.String)">
            <summary>
            验证身份证是否合法
            </summary>
            <param name="card"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Common.IdentityCard.Parse(System.String)">
            <summary>
            使用身份证号码初始化
            </summary>
            <param name="card"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Common.IdentityCard.Birthday">
            <summary>生日</summary>
        </member>
        <member name="P:NewLife.Common.IdentityCard.Sex">
            <summary>性别</summary>
        </member>
        <member name="P:NewLife.Common.IdentityCard.IsOld">
            <summary>是否15位旧卡</summary>
        </member>
        <member name="P:NewLife.Common.IdentityCard.AreaNum">
            <summary>地区编码</summary>
        </member>
        <member name="T:NewLife.Common.IdentityCard.SexType">
            <summary>
            性别
            </summary>
        </member>
        <member name="F:NewLife.Common.IdentityCard.SexType.Man">
            <summary>
            男
            </summary>
        </member>
        <member name="F:NewLife.Common.IdentityCard.SexType.Woman">
            <summary>
            女
            </summary>
        </member>
        <member name="T:NewLife.Log.CodeTimer">
            <summary>
            代码性能计时器
            </summary>
            <remarks>参考了老赵（http://www.cnblogs.com/jeffreyzhao/archive/2009/03/10/codetimer.html）和eaglet（http://www.cnblogs.com/eaglet/archive/2009/03/10/1407791.html）两位的作品</remarks>
            <remarks>为了保证性能比较的公平性，采用了多种指标，并使用计时器重写等手段来避免各种不必要的损耗</remarks>
        </member>
        <member name="M:NewLife.Log.CodeTimer.Time(System.Int32,System.Action{System.Int32})">
            <summary>
            计时
            </summary>
            <param name="times"></param>
            <param name="action"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Log.CodeTimer.TimeLine(System.String,System.Int32,System.Action{System.Int32})">
            <summary>
            计时，并用控制台输出行
            </summary>
            <param name="title"></param>
            <param name="times"></param>
            <param name="action"></param>
        </member>
        <member name="M:NewLife.Log.CodeTimer.Time">
            <summary>
            计时核心方法，处理进程和线程优先级
            </summary>
        </member>
        <member name="M:NewLife.Log.CodeTimer.TimeTrue">
            <summary>
            真正的计时
            </summary>
        </member>
        <member name="M:NewLife.Log.CodeTimer.TimeOne">
            <summary>
            执行一次迭代，预热所有方法
            </summary>
        </member>
        <member name="M:NewLife.Log.CodeTimer.Init">
            <summary>
            迭代前执行，计算时间
            </summary>
        </member>
        <member name="M:NewLife.Log.CodeTimer.Time(System.Int32)">
            <summary>
            每一次迭代，计算时间
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:NewLife.Log.CodeTimer.Finish">
            <summary>
            迭代后执行，计算时间
            </summary>
        </member>
        <member name="M:NewLife.Log.CodeTimer.ToString">
            <summary>
            已重载。输出依次分别是：执行时间、CPU线程时间、时钟周期、GC代数
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Log.CodeTimer.Times">
            <summary>次数</summary>
        </member>
        <member name="P:NewLife.Log.CodeTimer.Action">
            <summary>迭代方法，如不指定，则使用Time(int index)</summary>
        </member>
        <member name="P:NewLife.Log.CodeTimer.ShowProgress">
            <summary>是否显示控制台进度</summary>
        </member>
        <member name="P:NewLife.Log.CodeTimer.Index">
            <summary>进度</summary>
        </member>
        <member name="P:NewLife.Log.CodeTimer.CpuCycles">
            <summary>CPU周期</summary>
        </member>
        <member name="P:NewLife.Log.CodeTimer.ThreadTime">
            <summary>线程时间，单位是100ns，除以10000转为ms</summary>
        </member>
        <member name="P:NewLife.Log.CodeTimer.Gen">
            <summary>GC代数</summary>
        </member>
        <member name="P:NewLife.Log.CodeTimer.Elapsed">
            <summary>执行时间</summary>
        </member>
        <member name="T:NewLife.Collections.InterlockedStack`1">
            <summary>
            先进先出LIFO的原子锁栈结构，采用CAS保证线程安全。
            </summary>
            <remarks>
            经过测试，对象数量在万级以上时，性能急剧下降！
            </remarks>
            <typeparam name="T"></typeparam>
        </member>
        <member name="F:NewLife.Collections.InterlockedStack`1.Top">
            <summary>
            栈顶
            </summary>
        </member>
        <member name="F:NewLife.Collections.InterlockedStack`1._version">
            <summary>
            版本
            </summary>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.Push(`0)">
            <summary>
            向栈压入一个对象
            </summary>
            <remarks>重点解决多线程环境下资源争夺以及使用lock造成性能损失的问题</remarks>
            <param name="item"></param>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.Pop">
            <summary>
            从栈中弹出一个对象
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.TryPop(`0@)">
            <summary>
            尝试从栈中弹出一个对象
            </summary>
            <param name="item"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.Peek">
            <summary>
            获取栈顶对象，不弹栈
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.TryPeek(`0@)">
            <summary>
            尝试获取栈顶对象，不弹栈
            </summary>
            <param name="item"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.Clear">
            <summary>
            清空
            </summary>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.ToArray">
            <summary>
            转为数组
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.GetEnumerator">
            <summary>
            获取枚举器
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Collections.InterlockedStack`1.Count">
            <summary>元素个数</summary>
        </member>
        <member name="T:NewLife.Collections.InterlockedStack`1.Enumerator">
            <summary>
            原子栈枚举器
            </summary>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.Enumerator.Dispose">
            <summary>
            释放
            </summary>
        </member>
        <member name="M:NewLife.Collections.InterlockedStack`1.Enumerator.MoveNext">
            <summary>
            移到下一个
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Collections.InterlockedStack`1.Enumerator.Current">
            <summary>
            当前对象
            </summary>
        </member>
        <member name="T:NewLife.Collections.ObjectPool`1">
            <summary>
            对象池
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:NewLife.Collections.ObjectPool`1.Push(`0)">
            <summary>
            归还
            </summary>
            <param name="obj"></param>
        </member>
        <member name="M:NewLife.Collections.ObjectPool`1.Pop">
            <summary>
            借出
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ObjectPool`1.Create">
            <summary>
            创建实例
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ObjectPool`1.Clear">
            <summary>
            清空
            </summary>
        </member>
        <member name="M:NewLife.Collections.ObjectPool`1.OnDispose(System.Boolean)">
            <summary>
            子类重载实现资源释放逻辑
            </summary>
            <param name="disposing">从Dispose调用（释放所有资源）还是析构函数调用（释放非托管资源）</param>
        </member>
        <member name="P:NewLife.Collections.ObjectPool`1.Stock">
            <summary>在库</summary>
        </member>
        <member name="P:NewLife.Collections.ObjectPool`1.StockCount">
            <summary>在库</summary>
        </member>
        <member name="P:NewLife.Collections.ObjectPool`1.NotStockCount">
            <summary>不在库</summary>
        </member>
        <member name="P:NewLife.Collections.ObjectPool`1.CreateCount">
            <summary>创建数</summary>
        </member>
        <member name="T:NewLife.WeakReference`1">
            <summary>
            弱引用
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:NewLife.WeakReference`1.#ctor">
            <summary>
            实例化
            </summary>
        </member>
        <member name="M:NewLife.WeakReference`1.#ctor(`0)">
            <summary>
            实例化
            </summary>
            <param name="target"></param>
        </member>
        <member name="M:NewLife.WeakReference`1.#ctor(`0,System.Boolean)">
            <summary>
            实例化
            </summary>
            <param name="target"></param>
            <param name="trackResurrection"></param>
        </member>
        <member name="M:NewLife.WeakReference`1.op_Implicit(NewLife.WeakReference{`0})~`0">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.WeakReference`1.op_Implicit(`0)~NewLife.WeakReference{`0}">
            <summary>
            类型转换
            </summary>
            <param name="target"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.WeakReference`1.Target">
            <summary>
            目标引用对象
            </summary>
        </member>
        <member name="T:NewLife.Web.HttpState`1">
            <summary>
            Http状态，经常用于登录用户的Current
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="F:NewLife.Web.HttpState`1.EntityToCookie">
            <summary>
            实体转为Cookie的方法
            </summary>
        </member>
        <member name="F:NewLife.Web.HttpState`1.CookieToEntity">
            <summary>
            Cookie转为实体的方法
            </summary>
        </member>
        <member name="F:NewLife.Web.HttpState`1.Save">
            <summary>
            自定义保存
            </summary>
        </member>
        <member name="F:NewLife.Web.HttpState`1.Load">
            <summary>
            自定义加载
            </summary>
        </member>
        <member name="M:NewLife.Web.HttpState`1.#ctor">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:NewLife.Web.HttpState`1.#ctor(System.String)">
            <summary>
            初始化
            </summary>
            <param name="key"></param>
        </member>
        <member name="M:NewLife.Web.HttpState`1.Get(System.Converter{System.Web.HttpCookie,`0})">
            <summary>
            获取Http状态
            </summary>
            <param name="conv">把Cookie转为实体的转换器</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.HttpState`1.Get(System.Converter{System.Web.HttpCookie,`0},System.Converter{NewLife.Web.HttpState{`0},`0})">
            <summary>
            获取Http状态
            </summary>
            <param name="conv">把Cookie转为实体的转换器</param>
            <param name="load">自定义加载方法</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.HttpState`1.Set(`0,System.Converter{`0,System.Web.HttpCookie})">
            <summary>
            设置Http状态
            </summary>
            <param name="entity"></param>
            <param name="conv">把实体转换为Cookie的转换器</param>
        </member>
        <member name="M:NewLife.Web.HttpState`1.Set(`0,System.Converter{`0,System.Web.HttpCookie},System.Converter{`0,System.Boolean})">
            <summary>
            设置Http状态
            </summary>
            <param name="entity">实体</param>
            <param name="conv">把实体转换为Cookie的转换器</param>
            <param name="save">自定义保存</param>
        </member>
        <member name="M:NewLife.Web.HttpState`1.GetCache(System.String)">
            <summary>
            从全局Cache中获取数据
            </summary>
            <param name="sessionID">使用SessionID作为数据在全局Cache中的标识</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.HttpState`1.SetCache(System.String,`0)">
            <summary>
            设置数据到全局Cache
            </summary>
            <param name="sessionID">使用SessionID作为数据在全局Cache中的标识</param>
            <param name="entity"></param>
        </member>
        <member name="P:NewLife.Web.HttpState`1.Key">
            <summary>键值</summary>
        </member>
        <member name="P:NewLife.Web.HttpState`1.EnableSession">
            <summary>使用Session</summary>
        </member>
        <member name="P:NewLife.Web.HttpState`1.EnableHttpItems">
            <summary>使用HttpItems</summary>
        </member>
        <member name="P:NewLife.Web.HttpState`1.EnableCache">
            <summary>使用Cache</summary>
        </member>
        <member name="P:NewLife.Web.HttpState`1.EnableCookie">
            <summary>使用Cookie</summary>
        </member>
        <member name="P:NewLife.Web.HttpState`1.Http">
            <summary>
            Http上下文
            </summary>
        </member>
        <member name="P:NewLife.Web.HttpState`1.Current">
            <summary>
            获取当前Http状态保存的对象
            </summary>
        </member>
        <member name="T:NewLife.IO.BinaryWriterX">
            <summary>
            二进制协议写入器
            </summary>
            <remarks>在二进制协议里面，需要定义每一种类型的序列化方式，本写入器仅处理通用的基本类型</remarks>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.#ctor(System.IO.Stream)">
            <summary>
            实例化
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.#ctor(System.IO.Stream,System.Text.Encoding)">
            <summary>
            实例化
            </summary>
            <param name="stream"></param>
            <param name="encoding"></param>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteEncoded(System.Int32)">
            <summary>
            以压缩格式写入32位整数
            </summary>
            <param name="value"></param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteEncoded(System.Int64)">
            <summary>
            以压缩格式写入64位整数
            </summary>
            <param name="value"></param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.Support(System.Type)">
            <summary>
            是否支持指定类型
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteObject(System.Object)">
            <summary>
            把对象写入数据流，空对象写入0，所有子孙成员编码整数、允许空、写入字段。
            </summary>
            <param name="value">对象</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteObject(System.Object,NewLife.Reflection.MemberInfoX,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            把目标对象指定成员写入数据流，通过委托方法递归处理成员
            </summary>
            <param name="target">对象</param>
            <param name="member">成员</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteObject(System.Object,NewLife.Reflection.MemberInfoX,System.Boolean,System.Boolean,System.Boolean,NewLife.IO.BinaryWriterX.WriteCallback)">
            <summary>
            把目标对象指定成员写入数据流，处理基础类型、特殊类型、基础类型数组、特殊类型数组，通过委托方法处理成员
            </summary>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteValue(System.Object,System.Boolean)">
            <summary>
            写入值类型，只能识别基础类型，对于不能识别的类型，方法返回false
            </summary>
            <param name="value">要写入的对象</param>
            <param name="encodeInt">是否编码整数</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteValue(System.Object,System.Type,System.Boolean)">
            <summary>
            写入值类型，只能识别基础类型，对于不能识别的类型，方法返回false
            </summary>
            <param name="value">要写入的对象</param>
            <param name="type">要写入的对象类型</param>
            <param name="encodeInt">是否编码整数</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteStruct(System.ValueType)">
            <summary>
            写入结构体
            </summary>
            <param name="value"></param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteEnumerable(System.Collections.IEnumerable,System.Type,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            写入枚举数据，只处理元素类型是基本类型的数据
            </summary>
            <param name="value">对象</param>
            <param name="type">类型</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteEnumerable(System.Collections.IEnumerable,System.Type,System.Boolean,System.Boolean,System.Boolean,NewLife.IO.BinaryWriterX.WriteCallback)">
            <summary>
            写入枚举数据，复杂类型使用委托方法进行处理
            </summary>
            <param name="value">对象</param>
            <param name="type">类型</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="callback">使用指定委托方法处理复杂数据</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteX(System.Object)">
            <summary>
            扩展写入，反射查找合适的写入方法
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.WriteX(System.Object,System.Type)">
            <summary>
            扩展写入，反射查找合适的写入方法
            </summary>
            <param name="value"></param>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.Write(System.Guid)">
            <summary>
            写入Guid
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.Write(System.Net.IPAddress)">
            <summary>
            写入IPAddress
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.Write(System.Net.IPEndPoint)">
            <summary>
            写入IPEndPoint
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.Write(System.Type)">
            <summary>
            写入Type
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.FindFields(System.Type)">
            <summary>
            取得所有可序列化字段
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.BinaryWriterX.FindProperties(System.Type)">
            <summary>
            取得所有属性
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.IO.BinaryWriterX.Encoding">
            <summary>编码</summary>
        </member>
        <member name="T:NewLife.IO.BinaryWriterX.WriteCallback">
            <summary>
            数据写入方法
            </summary>
            <param name="writer">写入器</param>
            <param name="target">目标对象</param>
            <param name="member">成员</param>
            <param name="encodeInt">是否编码整数</param>
            <param name="allowNull">是否允许空</param>
            <param name="isProperty">是否处理属性</param>
            <param name="callback">处理成员的方法</param>
            <returns>是否写入成功</returns>
        </member>
        <member name="T:NewLife.EventArgs`1">
            <summary>
            泛型事件参数
            </summary>
            <typeparam name="TArg"></typeparam>
        </member>
        <member name="M:NewLife.EventArgs`1.#ctor(`0)">
            <summary>
            使用参数初始化
            </summary>
            <param name="arg"></param>
        </member>
        <member name="P:NewLife.EventArgs`1.Arg">
            <summary>参数</summary>
        </member>
        <member name="T:NewLife.EventArgs`2">
            <summary>
            泛型事件参数
            </summary>
            <typeparam name="TArg1"></typeparam>
            <typeparam name="TArg2"></typeparam>
        </member>
        <member name="M:NewLife.EventArgs`2.#ctor(`0,`1)">
            <summary>
            使用参数初始化
            </summary>
            <param name="arg1"></param>
            <param name="arg2"></param>
        </member>
        <member name="P:NewLife.EventArgs`2.Arg1">
            <summary>参数</summary>
        </member>
        <member name="P:NewLife.EventArgs`2.Arg2">
            <summary>参数2</summary>
        </member>
        <member name="T:NewLife.EventArgs`3">
            <summary>
            泛型事件参数
            </summary>
            <typeparam name="TArg1"></typeparam>
            <typeparam name="TArg2"></typeparam>
            <typeparam name="TArg3"></typeparam>
        </member>
        <member name="M:NewLife.EventArgs`3.#ctor(`0,`1,`2)">
            <summary>
            使用参数初始化
            </summary>
            <param name="arg1"></param>
            <param name="arg2"></param>
            <param name="arg3"></param>
        </member>
        <member name="P:NewLife.EventArgs`3.Arg1">
            <summary>参数</summary>
        </member>
        <member name="P:NewLife.EventArgs`3.Arg2">
            <summary>参数2</summary>
        </member>
        <member name="P:NewLife.EventArgs`3.Arg3">
            <summary>参数3</summary>
        </member>
        <member name="T:NewLife.Threading.ReadWriteLock">
            <summary>
            原子读写锁
            </summary>
            <remark>
            任意多个读操作，只有一个写操作；
            任意读操作阻塞写操作，同样任意写操作阻塞非本线程读操作和其它写操作；
            </remark>
            <remarks>
            do...while(Interlocked.CompareExchange(ref _lock, oldLock - 1, oldLock) != oldLock)形式的原子锁结构，
            精髓在于do...while之间，里面才是真正的判断数据有效性核心，而CompareExchange仅仅是负责完成替换而已。
            实际上，就类似于准备好各种资料等上级审批，而上级每次只能审批一个，如果这次别人抢到了，那么自己得再次准备资料。
            </remarks>
        </member>
        <member name="F:NewLife.Threading.ReadWriteLock._lock">
            <summary>
            锁计数
            </summary>
        </member>
        <member name="M:NewLife.Threading.ReadWriteLock.Create(System.Object)">
            <summary>
            根据指定键值创建读写锁，一般读写锁需要针对指定资源唯一
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Threading.ReadWriteLock.AcquireRead">
            <summary>
            请求读取锁
            </summary>
        </member>
        <member name="M:NewLife.Threading.ReadWriteLock.AcquireRead(System.Int32)">
            <summary>
            请求读取锁，等待指定秒
            </summary>
            <param name="millisecondsTimeout"></param>
            <returns>是否取得锁</returns>
        </member>
        <member name="M:NewLife.Threading.ReadWriteLock.ReleaseRead">
            <summary>
            释放读取锁
            </summary>
        </member>
        <member name="M:NewLife.Threading.ReadWriteLock.AcquireWrite">
            <summary>
            请求写入锁
            </summary>
        </member>
        <member name="M:NewLife.Threading.ReadWriteLock.AcquireWrite(System.Int32)">
            <summary>
            请求写入锁，等待指定秒
            </summary>
            <param name="millisecondsTimeout"></param>
            <returns>是否取得锁</returns>
        </member>
        <member name="M:NewLife.Threading.ReadWriteLock.ReleaseWrite">
            <summary>
            释放写入锁
            </summary>
        </member>
        <member name="P:NewLife.Threading.ReadWriteLock.Max">
            <summary>最大可独占资源数，默认1</summary>
        </member>
        <member name="P:NewLife.Threading.ReadWriteLock.ReadTimeout">
            <summary>读取锁等待超时时间，默认1秒</summary>
        </member>
        <member name="P:NewLife.Threading.ReadWriteLock.WriteTimeout">
            <summary>写入锁等待超时时间，默认5秒</summary>
        </member>
        <member name="T:NewLife.IO.HttpStreamClient">
            <summary>
            基于Http协议的数据流客户端
            </summary>
        </member>
        <member name="M:NewLife.IO.HttpStreamClient.#ctor">
            <summary>
            实例化
            </summary>
        </member>
        <member name="M:NewLife.IO.HttpStreamClient.#ctor(System.Uri)">
            <summary>
            实例化
            </summary>
            <param name="uri"></param>
        </member>
        <member name="M:NewLife.IO.HttpStreamClient.#ctor(System.String)">
            <summary>
            实例化
            </summary>
            <param name="url"></param>
        </member>
        <member name="M:NewLife.IO.HttpStreamClient.Send(System.Byte[])">
            <summary>
            同步发送数据
            </summary>
            <param name="data">待发送数据</param>
            <returns>服务端响应数据</returns>
        </member>
        <member name="M:NewLife.IO.HttpStreamClient.SendAsync(System.Byte[])">
            <summary>
            异步发送数据，服务端响应数据将由数据流总线处理
            </summary>
            <param name="data">待发送数据</param>
        </member>
        <member name="P:NewLife.IO.HttpStreamClient.Client">
            <summary>客户端</summary>
        </member>
        <member name="T:NewLife.Threading.ThreadPoolX">
            <summary>
            线程池。所有静态方法和实例方法均是线程安全。
            </summary>
        </member>
        <member name="F:NewLife.Threading.ThreadPoolX.SynLock_mt">
            <summary>
            用于维护管理线程的锁
            </summary>
        </member>
        <member name="F:NewLife.Threading.ThreadPoolX._ManagerThread">
            <summary>
            使用volatile关键字，等到对象创建完成
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Init">
            <summary>
            第一个任务到来时初始化线程池
            </summary>
        </member>
        <member name="F:NewLife.Threading.ThreadPoolX.SyncLock_Threads">
            <summary>
            用户维护线程组的锁
            </summary>
        </member>
        <member name="F:NewLife.Threading.ThreadPoolX.Sync_Tasks">
            <summary>
            任务队列同步锁
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.#ctor(System.String)">
            <summary>
            构造一个线程池
            </summary>
            <param name="name">线程池名</param>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Create(System.String)">
            <summary>
            创建线程池。一个名字只能创建一个线程池。线程安全。
            </summary>
            <param name="name">线程池名</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Queue(System.Threading.WaitCallback)">
            <summary>
            把用户工作项放入队列
            </summary>
            <param name="method">任务方法</param>
            <returns>任务编号</returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Queue(System.Threading.WaitCallback,System.Object)">
            <summary>
            把用户工作项放入队列
            </summary>
            <param name="method">任务方法</param>
            <param name="argument">任务参数</param>
            <returns>任务编号</returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Queue(System.Threading.WaitCallback,System.Threading.WaitCallback,System.Object)">
            <summary>
            把用户工作项放入队列。指定任务被取消时执行的方法，该方法仅针对尚未被线程开始调用时的任务有效
            </summary>
            <param name="method">任务方法</param>
            <param name="abortMethod">任务被取消时执行的方法</param>
            <param name="argument">任务参数</param>
            <returns>任务编号</returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Queue(NewLife.Threading.ThreadTask)">
            <summary>
            把用户工作项放入队列
            </summary>
            <param name="task">任务</param>
            <returns>任务编号</returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Abort(System.Int32)">
            <summary>
            取消任务
            </summary>
            <param name="id">任务编号</param>
            <returns>任务状态</returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.AbortAllTask">
            <summary>
            取消所有未开始任务
            </summary>
            <remarks>这里不要调用上面Abort取消单个任务，否则可能会造成死锁</remarks>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.AbortAllThread">
            <summary>
            取消所有进行中任务
            </summary>
            <remarks>这里不要调用上面Abort取消单个任务，否则可能会造成死锁</remarks>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.AbortAll">
            <summary>
            取消所有任务
            </summary>
            <remarks>这里不要调用上面Abort取消单个任务，否则可能会造成死锁</remarks>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Query(System.Int32)">
            <summary>
            查询任务状态
            </summary>
            <param name="id">任务编号</param>
            <returns>任务状态</returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.QueryCount">
            <summary>
            查询任务个数
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.WaitAll(System.Int32)">
            <summary>
            等待所有任务完成，并指定是否在等待之前退出同步域。
            </summary>
            <param name="millisecondsTimeout"></param>
            <returns>是否在等待之前退出同步域</returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Work">
            <summary>
            调度包装
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.AddThread">
            <summary>
            添加线程。本方法不是线程安全，调用者需要自己维护线程安全
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Open">
            <summary>
            借用线程
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Close(NewLife.Threading.ThreadX)">
            <summary>
            归还线程
            </summary>
            <param name="thread"></param>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Dispose">
            <summary>
            释放资源
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.Finalize">
            <summary>
            析构
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadPoolX.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.MaxThreads">
            <summary>最大线程数</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.MinThreads">
            <summary>最小线程数</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.Name">
            <summary>线程池名称</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.LastError">
            <summary>最后的异常</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.ManagerThread">
            <summary>维护线程</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.Threads">
            <summary>线程组。适用该资源时，记得加上线程锁lockObj</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.ThreadCount">
            <summary>当前线程数</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.RunningCount">
            <summary>正在处理任务的线程数</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.Event">
            <summary>事件量</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.Tasks">
            <summary>任务队列</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadPoolX.Debug">
            <summary>
            是否调试
            </summary>
        </member>
        <member name="T:NewLife.Reflection.Func">
            <summary>
            没有参数和返回值的委托
            </summary>
        </member>
        <member name="T:NewLife.Reflection.Func`1">
            <summary>
            具有指定类型返回的委托
            </summary>
            <typeparam name="TResult"></typeparam>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.Func`2">
            <summary>
            具有指定参数和返回的委托
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="TResult"></typeparam>
            <param name="arg"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.Func`3">
            <summary>
            具有指定两个参数和返回的委托
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="T2"></typeparam>
            <typeparam name="TResult"></typeparam>
            <param name="arg"></param>
            <param name="arg2"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.Func`4">
            <summary>
            具有指定三个参数和返回的委托
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="T2"></typeparam>
            <typeparam name="T3"></typeparam>
            <typeparam name="TResult"></typeparam>
            <param name="arg"></param>
            <param name="arg2"></param>
            <param name="arg3"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.Func`5">
            <summary>
            具有指定四个参数和返回的委托
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="T2"></typeparam>
            <typeparam name="T3"></typeparam>
            <typeparam name="T4"></typeparam>
            <typeparam name="TResult"></typeparam>
            <param name="arg"></param>
            <param name="arg2"></param>
            <param name="arg3"></param>
            <param name="arg4"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.Func`6">
            <summary>
            具有指定五个参数和返回的委托
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="T2"></typeparam>
            <typeparam name="T3"></typeparam>
            <typeparam name="T4"></typeparam>
            <typeparam name="T5"></typeparam>
            <typeparam name="TResult"></typeparam>
            <param name="arg"></param>
            <param name="arg2"></param>
            <param name="arg3"></param>
            <param name="arg4"></param>
            <param name="arg5"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.TypeX">
            <summary>
            类型辅助类
            </summary>
        </member>
        <member name="T:NewLife.Reflection.MemberInfoX">
            <summary>
            快速访问成员
            </summary>
        </member>
        <member name="F:NewLife.Reflection.MemberInfoX.DefaultBinding">
            <summary>
            默认查找标志
            </summary>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.#ctor(System.Reflection.MemberInfo)">
            <summary>
            初始化
            </summary>
            <param name="member"></param>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.Invoke(System.Object,System.Object[])">
            <summary>
            执行方法
            </summary>
            <param name="obj"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.GetValue(System.Object)">
            <summary>
            取值
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.SetValue(System.Object,System.Object)">
            <summary>
            赋值
            </summary>
            <param name="obj"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.GetValue">
            <summary>
            静态 取值
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.SetValue(System.Object)">
            <summary>
            静态 赋值
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.CreateInstance(System.Object[])">
            <summary>
            创建实例
            </summary>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.op_Implicit(NewLife.Reflection.MemberInfoX)~System.Reflection.MemberInfo">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.op_Implicit(System.Reflection.MemberInfo)~NewLife.Reflection.MemberInfoX">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MemberInfoX.HasRefParam(System.Reflection.MethodBase)">
            <summary>
            是否有引用参数
            </summary>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.MemberInfoX.Member">
            <summary>成员</summary>
        </member>
        <member name="P:NewLife.Reflection.MemberInfoX.Type">
            <summary>
            成员类型
            </summary>
        </member>
        <member name="P:NewLife.Reflection.MemberInfoX.TargetType">
            <summary>
            目标类型
            </summary>
        </member>
        <member name="P:NewLife.Reflection.MemberInfoX.IsType">
            <summary>
            是否类型
            </summary>
        </member>
        <member name="P:NewLife.Reflection.MemberInfoX.Item(System.Object)">
            <summary>
            属性/字段 索引器
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.MemberInfoX.Value">
            <summary>静态 属性/字段 值</summary>
        </member>
        <member name="M:NewLife.Reflection.TypeX.Create(System.Type)">
            <summary>
            创建类型辅助对象
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.CreateInstance(System.Object[])">
            <summary>
            创建实例
            </summary>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.CreateInstance(System.Type,System.Object[])">
            <summary>
            快速反射创建指定类型的实例
            </summary>
            <param name="type"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.GetValue(System.Object)">
            <summary>
            取值，返回自己
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.IsPlugin(System.Type)">
            <summary>
            是否指定类型的插件
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.GetType(System.String)">
            <summary>
            根据名称获取类型
            </summary>
            <param name="typeName">类型名</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.GetType(System.String,System.Boolean)">
            <summary>
            根据名称获取类型
            </summary>
            <param name="typeName">类型名</param>
            <param name="isLoadAssembly">是否从未加载程序集中获取类型。使用仅反射的方法检查目标类型，如果存在，则进行常规加载</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.GetType(System.Reflection.Assembly,System.String)">
            <summary>
            从指定程序集查找指定名称的类型，如果查找不到，则进行忽略大小写的查找
            </summary>
            <param name="asm"></param>
            <param name="typeName"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.Equal(System.Type,System.Type)">
            <summary>
            判断两个类型是否相同，避免引用加载和执行上下文加载的相同类型显示不同
            </summary>
            <param name="type1"></param>
            <param name="type2"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.GetCustomAttributeValue``2">
            <summary>
            获取自定义属性的值。可用于ReflectionOnly加载的程序集
            </summary>
            <typeparam name="TAttribute"></typeparam>
            <typeparam name="TResult"></typeparam>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.op_Implicit(NewLife.Reflection.TypeX)~System.Type">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.TypeX.op_Implicit(System.Type)~NewLife.Reflection.TypeX">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.TypeX.BaseType">
            <summary>类型</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Handler">
            <summary>
            快速调用委托，延迟到首次使用才创建
            </summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.IsSystemType">
            <summary>
            是否系统类型
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Description">
            <summary>说明</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Members">
            <summary>所有成员</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Fields">
            <summary>字段集合</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Properties">
            <summary>属性集合</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Methods">
            <summary>方法集合</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Constructors">
            <summary>构造函数集合</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Events">
            <summary>事件集合</summary>
        </member>
        <member name="P:NewLife.Reflection.TypeX.Interfaces">
            <summary>接口集合</summary>
        </member>
        <member name="T:NewLife.Reflection.DynamicAssembly">
            <summary>
            全局方法程序集
            </summary>
        </member>
        <member name="M:NewLife.Reflection.DynamicAssembly.AddGlobalMethod(System.Reflection.MethodInfo,System.Action{System.Reflection.Emit.ILGenerator})">
            <summary>
            添加全局方法
            </summary>
            <param name="method"></param>
            <param name="fun"></param>
        </member>
        <member name="M:NewLife.Reflection.DynamicAssembly.Save(System.String)">
            <summary>
            保存
            </summary>
            <param name="fileName"></param>
        </member>
        <member name="P:NewLife.Reflection.DynamicAssembly.Name">
            <summary>名称</summary>
        </member>
        <member name="P:NewLife.Reflection.DynamicAssembly.AsmBuilder">
            <summary>程序集创建器</summary>
        </member>
        <member name="P:NewLife.Reflection.DynamicAssembly.ModBuilder">
            <summary>模块创建器</summary>
        </member>
        <member name="P:NewLife.Reflection.DynamicAssembly.TypeBuilder">
            <summary>类型创建器</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolSerializedEventArgs">
            <summary>
            协议序列化事件参数
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolSerializedEventArgs.#ctor(NewLife.Serialization.Protocol.WriteContext)">
            <summary>
            构造
            </summary>
            <param name="context"></param>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolSerializedEventArgs.Context">
            <summary>上下文</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolDeserializedEventArgs">
            <summary>
            协议反序列化事件参数
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolDeserializedEventArgs.#ctor(NewLife.Serialization.Protocol.ReadContext)">
            <summary>
            构造
            </summary>
            <param name="context"></param>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolDeserializedEventArgs.Context">
            <summary>上下文</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolNotNullAttribute">
            <summary>
            是否不为空
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolNotNullAttribute.#ctor(System.Boolean)">
            <summary>
            构造
            </summary>
            <param name="notNull"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolNotNullAttribute.#ctor">
            <summary>
            构造
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolNotNullAttribute.MergeTo(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolNotNullAttribute.Equals(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolNotNullAttribute.NotNull">
            <summary>是否不为空</summary>
            <remarks>序列化引用对象时，默认会先写入一个字节表示该对象是否为空，对于该特性标识的非空对象，不再写入该标识字节</remarks>
        </member>
        <member name="T:NewLife.Common.HardInfo">
            <summary>
            硬件信息
            </summary>
        </member>
        <member name="M:NewLife.Common.HardInfo.ToExtend">
            <summary>
            
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Common.HardInfo.FromExtend(NewLife.Xml.ExtendData)">
            <summary>
            
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Common.HardInfo.ToXml">
            <summary>
            导出XML
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Common.HardInfo.FromXml(System.String)">
            <summary>
            导入
            </summary>
            <param name="xml"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Common.HardInfo.MachineName">
            <summary>机器名</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.BaseBoard">
            <summary>主板</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.Processors">
            <summary>处理器</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.Disk">
            <summary>磁盘</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.DiskSerial">
            <summary>磁盘序列号</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.Volume">
            <summary>驱动器序列号</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.Macs">
            <summary>网卡</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.IPs">
            <summary>IP地址</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.OSVersion">
            <summary>系统版本</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.Memory">
            <summary>内存</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.ScreenWidth">
            <summary>屏幕宽</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.ScreenHeight">
            <summary>屏幕高</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.DiskSize">
            <summary>磁盘大小</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo.Current">
            <summary>当前机器硬件信息</summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.MachineName">
            <summary>
            机器名
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.BaseBoard">
            <summary>
            主板序列号
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.Processors">
            <summary>
            处理器序列号
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.Memory">
            <summary>
            内存总量
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.Disk">
            <summary>
            磁盘名称
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.DiskSerial">
            <summary>
            磁盘序列号
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.Volume">
            <summary>
            驱动器序列号
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.Macs">
            <summary>
            网卡地址序列号
            </summary>
        </member>
        <member name="P:NewLife.Common.HardInfo._.IPs">
            <summary>
            IP地址
            </summary>
        </member>
        <member name="T:NewLife.Remoting.MethodMessage">
            <summary>
            方法消息
            </summary>
        </member>
        <member name="P:NewLife.Remoting.MethodMessage.MessageType">
            <summary>消息类型</summary>
        </member>
        <member name="T:NewLife.Exceptions.XException">
            <summary>
            X组件异常
            </summary>
        </member>
        <member name="M:NewLife.Exceptions.XException.#ctor">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:NewLife.Exceptions.XException.#ctor(System.String)">
            <summary>
            初始化
            </summary>
            <param name="message"></param>
        </member>
        <member name="M:NewLife.Exceptions.XException.#ctor(System.String,System.Object[])">
            <summary>
            初始化
            </summary>
            <param name="format"></param>
            <param name="args"></param>
        </member>
        <member name="M:NewLife.Exceptions.XException.#ctor(System.String,System.Exception)">
            <summary>
            初始化
            </summary>
            <param name="message"></param>
            <param name="innerException"></param>
        </member>
        <member name="M:NewLife.Exceptions.XException.#ctor(System.Exception)">
            <summary>
            初始化
            </summary>
            <param name="innerException"></param>
        </member>
        <member name="M:NewLife.Exceptions.XException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            初始化
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolFormatter">
            <summary>
            协议序列化
            </summary>
            <remarks>
            协议序列化分为两大类：
            1，纯数据不包含头部的协议类型序列化；
            2，包含头部信息的增强型序列化。
            而不管是哪一类序列化，都将以最小序列化结果作为目标。
            </remarks>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.#ctor">
            <summary>
            构造
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.#ctor(System.Type)">
            <summary>
            构造
            </summary>
            <param name="type"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.WriteMember(NewLife.Serialization.Protocol.WriteContext)">
            <summary>
            写入对象
            </summary>
            <remarks>
            分为几种情况：
            1，空引用直接写入0
            2，基本值类型直接写入值
            3，非基本值类型先查找是否已有引用，已有则写入引用计数（从1开始，因为0表示空引用），没有则添加到引用集合，不写引用计数
            4，数组和枚举类型先写入元素个数，再依次写入元素
            5，对象类型，反射得到属性和字段，一个个写入
            值得注意的是，数据和枚举本也使用引用计数防止重复引用，同时包含引用计数和元素个数
            </remarks>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.ReadMember(NewLife.Serialization.Protocol.ReadContext)">
            <summary>
            读取对象
            </summary>
            <remarks>
            非对象类型直接返回数据；
            对象类型且参数context.Data不为空时，填充context.Data；
            对象类型且参数context.Data为空时，创建对象，填充后返回
            </remarks>
            <remarks>
            分为几种情况：
            1，空引用直接写入0
            2，基本值类型直接写入值
            3，非基本值类型先查找是否已有引用，已有则写入引用计数（从1开始，因为0表示空引用），没有则添加到引用集合，再写入引用计数
            4，数组和枚举类型先写入元素个数，再依次写入元素
            5，对象类型，反射得到属性和字段，一个个写入
            值得注意的是，数据和枚举本也使用引用计数防止重复引用，同时包含引用计数和元素个数
            </remarks>
            <param name="context"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.Serialize(System.IO.Stream,System.Object)">
            <summary>
            把一个对象序列化到指定流中
            </summary>
            <param name="stream"></param>
            <param name="obj"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.Deserialize(System.IO.Stream)">
            <summary>
            从指定流中读取一个对象
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.Deserialize(System.IO.Stream,System.Object)">
            <summary>
            从指定流读取数据填充到指定对象
            </summary>
            <param name="stream"></param>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.FindAllSerialized(System.Type,System.Boolean)">
            <summary>
            获取所有可序列化的字段
            </summary>
            <param name="type"></param>
            <param name="serialProperty">主要序列化属性，没有标记的属性全部返回，否则仅返回标记了协议特性的属性</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.OnSerializing(NewLife.Serialization.Protocol.WriteContext)">
            <summary>
            序列化前触发
            </summary>
            <param name="context"></param>
            <returns>是否允许序列化当前字段或属性</returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.OnSerialized(NewLife.Serialization.Protocol.WriteContext)">
            <summary>
            序列化后触发
            </summary>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.OnDeserializing(NewLife.Serialization.Protocol.ReadContext)">
            <summary>
            反序列化前触发
            </summary>
            <param name="context"></param>
            <returns>是否允许反序列化当前字段或属性</returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.OnDeserialized(NewLife.Serialization.Protocol.ReadContext)">
            <summary>
            反序列化后触发
            </summary>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolFormatter.OnCreateInstance(NewLife.Serialization.Protocol.ReadContext,System.Type)">
            <summary>
            为指定类型创建实例时触发
            </summary>
            <remarks>当内部自定义后外部事件同时存在时，优先外部事件</remarks>
            <param name="context"></param>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatter.Head">
            <summary>头部</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatter.Binder">
            <summary>绑定器</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatter.Context">
            <summary>上下文</summary>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolFormatter.SurrogateSelector">
            <summary></summary>
        </member>
        <member name="E:NewLife.Serialization.Protocol.ProtocolFormatter.Serializing">
            <summary>
            序列化前
            </summary>
        </member>
        <member name="E:NewLife.Serialization.Protocol.ProtocolFormatter.Serialized">
            <summary>
            序列化后
            </summary>
        </member>
        <member name="E:NewLife.Serialization.Protocol.ProtocolFormatter.Deserializing">
            <summary>
            反序列化前
            </summary>
        </member>
        <member name="E:NewLife.Serialization.Protocol.ProtocolFormatter.Deserialized">
            <summary>
            反序列化后
            </summary>
        </member>
        <member name="E:NewLife.Serialization.Protocol.ProtocolFormatter.CreateInstance">
            <summary>
            创建实例
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ReadContext">
            <summary>
            读取上下文
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ReadContext.Create">
            <summary>
            创建当前对象的新实例
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ReadContext.Clone(System.Object,System.Type,System.Reflection.MemberInfo)">
            <summary>
            已重载。
            </summary>
            <param name="data"></param>
            <param name="type"></param>
            <param name="member"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ReadContext.Reader">
            <summary>读取器</summary>
        </member>
        <member name="T:NewLife.Messaging.MessageStreamHandler">
            <summary>
            用于消息的数据流处理器。
            </summary>
        </member>
        <member name="T:NewLife.Messaging.NullMessage">
            <summary>
            空消息
            </summary>
        </member>
        <member name="P:NewLife.Messaging.NullMessage.ID">
            <summary>
            消息编号
            </summary>
        </member>
        <member name="T:NewLife.Reflection.EmitHelper">
            <summary>
            动态生成代码Emit助手。仅提供扩展功能，不封装基本功能
            </summary>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.#ctor(System.Reflection.Emit.ILGenerator)">
            <summary>
            实例化
            </summary>
            <param name="il"></param>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Ldc_I4(System.Int32)">
            <summary>
            基于Ldc_I4指令的整数推送，自动选择最合适的指令
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Ldarg(System.Int32)">
            <summary>
            基于Ldarg指令的参数加载，自动选择最合适的指令
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Stloc(System.Int32)">
            <summary>
            基于Stloc指令的弹栈，自动选择最合适的指令
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Ldloc(System.Int32)">
            <summary>
            基于Ldloc指令的压栈，自动选择最合适的指令
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Ldfld(System.Reflection.FieldInfo)">
            <summary>
            查找对象中其引用当前位于计算堆栈的字段的值。
            </summary>
            <param name="field"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Ldelem_Ref">
            <summary>
            将位于指定数组索引处的包含对象引用的元素作为 O 类型（对象引用）加载到计算堆栈的顶部。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Stelem_Ref">
            <summary>
            用计算堆栈上的对象 ref 值（O 类型）替换给定索引处的数组元素。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.CastFromObject(System.Type)">
            <summary>
            把一个类型转为指定类型，值类型装箱，引用类型直接Cast
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.BoxIfValueType(System.Type)">
            <summary>
            装箱
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Call(System.Reflection.MethodInfo)">
            <summary>
            调用
            </summary>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Ldnull">
            <summary>
            加载空
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.Ret">
            <summary>
            返回
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.NewValueType(System.Type)">
            <summary>
            创建值类型，对象位于栈上
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.NewArray(System.Type)">
            <summary>
            创建数组，参数必须是Object[]
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.NewObj(System.Reflection.ConstructorInfo)">
            <summary>
            创建对象
            </summary>
            <param name="constructor"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.CreateLocalsForByRefParams(System.Reflection.MethodBase)">
            <summary>
            为引用参数声明本地变量
            </summary>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.AssignByRefParamsToArray(System.Reflection.MethodBase)">
            <summary>
            将引用参数赋值到数组
            </summary>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.PushParamsOrLocalsToStack(System.Reflection.MethodBase)">
            <summary>
            将参数压栈
            </summary>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.PushParams(System.Int32,System.Reflection.MethodBase)">
            <summary>
            将指定参数位置的数组参数按照方法参数要求压栈
            </summary>
            <param name="paramIndex"></param>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.EmitHelper.PushParams(System.Int32,System.Type[])">
            <summary>
            将指定参数位置的数组参数一个个压栈
            </summary>
            <param name="paramIndex"></param>
            <param name="paramTypes"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.EmitHelper.IL">
            <summary>IL代码生成器</summary>
        </member>
        <member name="T:NewLife.Reflection.AttributeX">
            <summary>
            特性辅助类
            </summary>
        </member>
        <member name="M:NewLife.Reflection.AttributeX.GetCustomAttribute``1(System.Reflection.MemberInfo,System.Boolean)">
            <summary>
            获取自定义属性
            </summary>
            <typeparam name="TAttribute"></typeparam>
            <param name="member"></param>
            <param name="inherit"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AttributeX.GetCustomAttributeValue``2(System.Reflection.Assembly)">
            <summary>
            获取自定义属性的值。可用于ReflectionOnly加载的程序集
            </summary>
            <typeparam name="TAttribute"></typeparam>
            <typeparam name="TResult"></typeparam>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.AttributeX.GetCustomAttributeValue``2(System.Type,System.Boolean)">
            <summary>
            获取自定义属性的值。可用于ReflectionOnly加载的程序集
            </summary>
            <typeparam name="TAttribute"></typeparam>
            <typeparam name="TResult"></typeparam>
            <param name="target"></param>
            <param name="inherit">是否递归</param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.MethodInfoX">
            <summary>
            快速调用。基于DynamicMethod和Emit实现。
            </summary>
        </member>
        <member name="M:NewLife.Reflection.MethodInfoX.Create(System.Reflection.MethodInfo)">
            <summary>
            创建
            </summary>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MethodInfoX.Create(System.Type,System.String)">
            <summary>
            创建
            </summary>
            <param name="type"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MethodInfoX.Create(System.Type,System.String,System.Type[])">
            <summary>
            创建
            </summary>
            <param name="type"></param>
            <param name="name"></param>
            <param name="paramTypes">参数类型</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MethodInfoX.Invoke(System.Object,System.Object[])">
            <summary>
            参数调用
            </summary>
            <param name="obj"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MethodInfoX.Invoke``1(System.Object,System.String,System.Object[])">
            <summary>
            快速调用方法成员
            </summary>
            <typeparam name="TResult"></typeparam>
            <param name="target"></param>
            <param name="name"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MethodInfoX.op_Implicit(NewLife.Reflection.MethodInfoX)~System.Reflection.MethodInfo">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.MethodInfoX.op_Implicit(System.Reflection.MethodInfo)~NewLife.Reflection.MethodInfoX">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.MethodInfoX.Method">
            <summary>目标方法</summary>
        </member>
        <member name="P:NewLife.Reflection.MethodInfoX.Handler">
            <summary>
            快速调用委托，延迟到首次使用才创建
            </summary>
        </member>
        <member name="T:NewLife.Reflection.MethodInfoX.FastInvokeHandler">
            <summary>
            快速调用委托
            </summary>
            <param name="obj"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.PropertyInfoX">
            <summary>
            快速属性访问
            </summary>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.Create(System.Reflection.PropertyInfo)">
            <summary>
            创建
            </summary>
            <param name="property"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.Create(System.Type,System.String)">
            <summary>
            创建
            </summary>
            <param name="type"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.GetValue(System.Object)">
            <summary>
            取值
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.SetValue(System.Object,System.Object)">
            <summary>
            赋值
            </summary>
            <param name="obj"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.GetValue``1(System.Object,System.String)">
            <summary>
            静态快速取值
            </summary>
            <typeparam name="TResult"></typeparam>
            <param name="target"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.SetValue(System.Object,System.String,System.Object)">
            <summary>
            静态快速赋值
            </summary>
            <param name="target"></param>
            <param name="name"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.op_Implicit(NewLife.Reflection.PropertyInfoX)~System.Reflection.PropertyInfo">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.PropertyInfoX.op_Implicit(System.Reflection.PropertyInfo)~NewLife.Reflection.PropertyInfoX">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.PropertyInfoX.Property">
            <summary>目标属性</summary>
        </member>
        <member name="P:NewLife.Reflection.PropertyInfoX.GetMethod">
            <summary>读取方法</summary>
        </member>
        <member name="P:NewLife.Reflection.PropertyInfoX.SetMethod">
            <summary>设置方法</summary>
        </member>
        <member name="P:NewLife.Reflection.PropertyInfoX.GetHandler">
            <summary>
            快速调用委托，延迟到首次使用才创建
            </summary>
        </member>
        <member name="P:NewLife.Reflection.PropertyInfoX.SetHandler">
            <summary>
            快速调用委托，延迟到首次使用才创建
            </summary>
        </member>
        <member name="T:NewLife.Reflection.ConstructorInfoX">
            <summary>
            快速调用构造函数。基于DynamicMethod和Emit实现。
            </summary>
        </member>
        <member name="M:NewLife.Reflection.ConstructorInfoX.Create(System.Reflection.ConstructorInfo)">
            <summary>
            创建
            </summary>
            <param name="constructor"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.ConstructorInfoX.Create(System.Type,System.Type[])">
            <summary>
            创建
            </summary>
            <param name="type"></param>
            <param name="types"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.ConstructorInfoX.Create(System.Type)">
            <summary>
            创建
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.ConstructorInfoX.CreateInstance(System.Object[])">
            <summary>
            创建实例
            </summary>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.ConstructorInfoX.op_Implicit(NewLife.Reflection.ConstructorInfoX)~System.Reflection.ConstructorInfo">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.ConstructorInfoX.op_Implicit(System.Reflection.ConstructorInfo)~NewLife.Reflection.ConstructorInfoX">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.ConstructorInfoX.Constructor">
            <summary>目标方法</summary>
        </member>
        <member name="P:NewLife.Reflection.ConstructorInfoX.Handler">
            <summary>
            快速调用委托，延迟到首次使用才创建
            </summary>
        </member>
        <member name="T:NewLife.WeakAction`1">
            <summary>
            弱引用Action
            </summary>
            <typeparam name="TArgs"></typeparam>
        </member>
        <member name="F:NewLife.WeakAction`1.Target">
            <summary>
            目标对象。弱引用，使得调用方对象可以被GC回收
            </summary>
        </member>
        <member name="F:NewLife.WeakAction`1.Method">
            <summary>
            委托方法
            </summary>
        </member>
        <member name="F:NewLife.WeakAction`1.Handler">
            <summary>
            经过包装的新的委托
            </summary>
        </member>
        <member name="F:NewLife.WeakAction`1.UnHandler">
            <summary>
            取消注册的委托
            </summary>
        </member>
        <member name="F:NewLife.WeakAction`1.Once">
            <summary>
            是否只使用一次，如果只使用一次，执行委托后马上取消注册
            </summary>
        </member>
        <member name="M:NewLife.WeakAction`1.#ctor(System.Action{`0},System.Action{System.Action{`0}},System.Boolean)">
            <summary>
            使用事件处理器、取消注册回调、是否一次性事件来初始化
            </summary>
            <param name="handler"></param>
            <param name="unHandler"></param>
            <param name="once"></param>
        </member>
        <member name="M:NewLife.WeakAction`1.Invoke(`0)">
            <summary>
            调用委托
            </summary>
            <param name="e"></param>
        </member>
        <member name="M:NewLife.WeakAction`1.op_Implicit(NewLife.WeakAction{`0})~System.Action{`0}">
            <summary>
            把弱引用事件处理器转换为普通事件处理器
            </summary>
            <param name="handler"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Collections.ListX`1">
            <summary>
            增强的强类型列表
            </summary>
        </member>
        <member name="M:NewLife.Collections.ListX`1.#ctor">
            <summary>
            构造一个实体对象集合
            </summary>
        </member>
        <member name="M:NewLife.Collections.ListX`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            构造一个实体对象集合
            </summary>
            <param name="collection"></param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.#ctor(System.Int32)">
            <summary>
            构造一个实体对象集合
            </summary>
            <param name="capacity"></param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.#ctor(System.Collections.IEnumerable)">
            <summary>
            初始化
            </summary>
            <param name="collection"></param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.op_Addition(NewLife.Collections.ListX{`0},NewLife.Collections.ListX{`0})">
            <summary>
            集合相加
            </summary>
            <param name="list1">第一个实体集合</param>
            <param name="list2">第二个实体集合</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.op_Subtraction(NewLife.Collections.ListX{`0},NewLife.Collections.ListX{`0})">
            <summary>
            集合相减
            </summary>
            <param name="list1">第一个实体集合</param>
            <param name="list2">第二个实体集合</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            从集合中移除另一个集合指定的元素
            </summary>
            <param name="collection"></param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.FindAll(System.String,System.Object)">
            <summary>
            根据指定项查找
            </summary>
            <param name="name">属性名</param>
            <param name="value">属性值</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.FindAll(System.Predicate{`0})">
            <summary>
            检索与指定谓词定义的条件匹配的所有元素。
            </summary>
            <param name="match">条件</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.Find(System.String,System.Object)">
            <summary>
            根据指定项查找
            </summary>
            <param name="name">属性名</param>
            <param name="value">属性值</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.FindAllIgnoreCase(System.String,System.String)">
            <summary>
            根据指定项查找字符串。忽略大小写
            </summary>
            <param name="name">属性名</param>
            <param name="value">属性值</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.FindIgnoreCase(System.String,System.String)">
            <summary>
            根据指定项查找字符串。忽略大小写
            </summary>
            <param name="name">属性名</param>
            <param name="value">属性值</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.Exists(System.String,System.Object)">
            <summary>
            集合是否包含指定项
            </summary>
            <param name="name"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.Sort(System.String,System.Boolean)">
            <summary>
            按指定字段排序
            </summary>
            <param name="name">字段</param>
            <param name="isDesc">是否降序</param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.Sort(System.String[],System.Boolean[])">
            <summary>
            按指定字段数组排序
            </summary>
            <param name="names">字段</param>
            <param name="isDescs">是否降序</param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.GetItem``1(System.String)">
            <summary>
            获取所有实体中指定项的值
            </summary>
            <typeparam name="TResult">指定项的类型</typeparam>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.Export(System.IO.TextWriter)">
            <summary>
            导出
            </summary>
            <param name="writer"></param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.Import(System.IO.TextReader)">
            <summary>
            导入
            </summary>
            <param name="reader"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.ToXml">
            <summary>
            导出Xml文本
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.FromXml(System.String)">
            <summary>
            导入Xml文本
            </summary>
            <param name="xml"></param>
        </member>
        <member name="M:NewLife.Collections.ListX`1.From(System.Collections.IEnumerable)">
            <summary>
            任意集合转为实体集合
            </summary>
            <param name="collection"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.From``1(System.Collections.IEnumerable,NewLife.Reflection.Func{``0,`0})">
            <summary>
            拥有指定类型转换器的转换
            </summary>
            <typeparam name="T2"></typeparam>
            <param name="collection"></param>
            <param name="func"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.GetValue(System.Object,System.String)">
            <summary>
            快速取值，如果实现了IIndexAccessor接口，则优先采用
            </summary>
            <param name="target"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.ListX`1.Clone">
            <summary>
            克隆
            </summary>
            <returns></returns>
        </member>
        <member name="T:NewLife.Web.HttpStream">
            <summary>
            HTTP输入输出流
            </summary>
        </member>
        <member name="M:NewLife.Web.HttpStream.#ctor(System.Web.HttpContext)">
            <summary>
            初始化
            </summary>
            <param name="context"></param>
        </member>
        <member name="M:NewLife.Web.HttpStream.Flush">
            <summary>
            已重载。
            </summary>
        </member>
        <member name="P:NewLife.Web.HttpStream.Context">
            <summary>HTTP上下文</summary>
        </member>
        <member name="P:NewLife.Web.HttpStream.RemoteEndPoint">
            <summary>远程地址</summary>
        </member>
        <member name="T:NewLife.Threading.TaskState">
            <summary>
            任务状态
            </summary>
        </member>
        <member name="F:NewLife.Threading.TaskState.Unstarted">
            <summary>
            未处理
            </summary>
        </member>
        <member name="F:NewLife.Threading.TaskState.Running">
            <summary>
            正在处理
            </summary>
        </member>
        <member name="F:NewLife.Threading.TaskState.Finished">
            <summary>
            已完成
            </summary>
        </member>
        <member name="T:NewLife.Remoting.RemotingMessageHandler">
            <summary>
            远程调用消息处理器
            </summary>
        </member>
        <member name="T:NewLife.Messaging.MessageHandler">
            <summary>
            消息处理器
            </summary>
        </member>
        <member name="T:NewLife.Messaging.IMessageHandler">
            <summary>
            消息处理器接口
            </summary>
        </member>
        <member name="M:NewLife.Messaging.IMessageHandler.Create(System.Int32)">
            <summary>
            创建指定编号的消息
            </summary>
            <param name="messageID"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.IMessageHandler.Process(NewLife.Messaging.Message,System.IO.Stream)">
            <summary>
            处理消息
            </summary>
            <param name="message">消息</param>
            <param name="stream">数据流，已经从里面读取消息实体</param>
            <returns>转发给下一个处理器的数据流，如果不想让后续处理器处理，返回空</returns>
        </member>
        <member name="P:NewLife.Messaging.IMessageHandler.IsReusable">
            <summary>
            是否可以重用。
            </summary>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.Create(System.Int32)">
            <summary>
            创建消息
            </summary>
            <param name="messageID"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.Process(NewLife.Messaging.Message,System.IO.Stream)">
            <summary>
            处理消息
            </summary>
            <param name="message">消息</param>
            <param name="stream">数据流，已经从里面读取消息实体</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.Register(System.Int32,NewLife.Messaging.IMessageHandler,System.Boolean)">
            <summary>
            注册数据流处理器。
            数据流到达时将进入指定通道的每一个处理器。
            不同通道名称的处理器互不干扰。
            不提供注册到指定位置的功能，如果需要，再以多态方式实现。
            </summary>
            <param name="id">通道名称，用于区分数据流总线</param>
            <param name="handler">数据流处理器</param>
            <param name="cover">是否覆盖原有同类型处理器</param>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.QueryRegister(System.Int32)">
            <summary>
            查询注册，返回指定通道的处理器数组。
            </summary>
            <param name="id"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.Support(System.Int32)">
            <summary>
            是否支持指定类型的消息
            </summary>
            <param name="id"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.GetHandler">
            <summary>
            获取配置文件指定的处理器
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.LoadConfig">
            <summary>
            从配置文件中加载工厂
            </summary>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.CreateMessage(System.Int32)">
            <summary>
            创建指定编号的消息
            </summary>
            <param name="id"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.Process(System.IO.Stream)">
            <summary>
            处理消息
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:NewLife.Messaging.MessageHandler.Process(System.IO.Stream,NewLife.Messaging.MessageExceptionOption)">
            <summary>
            处理消息
            </summary>
            <param name="stream"></param>
            <param name="option"></param>
        </member>
        <member name="P:NewLife.Messaging.MessageHandler.IsReusable">
            <summary>
            是否可以重用
            </summary>
        </member>
        <member name="E:NewLife.Messaging.MessageHandler.Received">
            <summary>
            消息到达时触发
            </summary>
        </member>
        <member name="E:NewLife.Messaging.MessageHandler.Error">
            <summary>
            异常发生时触发
            </summary>
        </member>
        <member name="E:NewLife.Messaging.MessageHandler.Null">
            <summary>
            空消息发生时触发
            </summary>
        </member>
        <member name="T:NewLife.Messaging.MessageHandler.DefaultMessageHandler">
            <summary>
            异常消息处理器
            </summary>
        </member>
        <member name="M:NewLife.Remoting.RemotingMessageHandler.#cctor">
            <summary>
            静态构造函数
            </summary>
        </member>
        <member name="M:NewLife.Remoting.RemotingMessageHandler.Init">
            <summary>
            初始化，用于注册所有消息
            </summary>
        </member>
        <member name="M:NewLife.Remoting.RemotingMessageHandler.Create(System.Int32)">
            <summary>
            建立消息
            </summary>
            <param name="messageID"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Remoting.RemotingMessageHandler.Process(NewLife.Messaging.Message,System.IO.Stream)">
            <summary>
            处理消息
            </summary>
            <param name="message"></param>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Remoting.RemotingClient">
            <summary>
            远程客户端
            </summary>
        </member>
        <member name="P:NewLife.Remoting.RemotingClient.Client">
            <summary>数据流客户端</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolDeserializingEventArgs">
            <summary>
            协议反序列化事件参数
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolDeserializingEventArgs.#ctor(NewLife.Serialization.Protocol.ReadContext)">
            <summary>
            构造
            </summary>
            <param name="context"></param>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolDeserializingEventArgs.Context">
            <summary>上下文</summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolUseRefObjectAttribute">
            <summary>
            是否使用对象引用
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolUseRefObjectAttribute.#ctor(System.Boolean)">
            <summary>
            构造
            </summary>
            <param name="useRefObject"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolUseRefObjectAttribute.#ctor">
            <summary>
            构造
            </summary>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolUseRefObjectAttribute.MergeTo(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
        </member>
        <member name="M:NewLife.Serialization.Protocol.ProtocolUseRefObjectAttribute.Equals(NewLife.Serialization.Protocol.FormatterConfig)">
            <summary>
            已重载。
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Serialization.Protocol.ProtocolUseRefObjectAttribute.UseRefObject">
            <summary>是否使用对象引用</summary>
        </member>
        <member name="T:NewLife.Collections.DictionaryCache`2">
            <summary>
            字典缓存。当指定键的缓存项不存在时，调用委托获取值，并写入缓存
            </summary>
            <typeparam name="TKey">键类型</typeparam>
            <typeparam name="TValue">值类型</typeparam>
        </member>
        <member name="M:NewLife.Collections.DictionaryCache`2.GetItem(`0,NewLife.Reflection.Func{`0,`1},System.Boolean)">
            <summary>
            扩展获取数据项，当数据项不存在时，通过调用委托获取数据项。线程安全。
            </summary>
            <param name="key">键</param>
            <param name="func">获取值的委托，该委托以键作为参数</param>
            <param name="cacheDefault">是否缓存默认值，可选参数，默认缓存</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.DictionaryCache`2.GetItem``1(`0,``0,NewLife.Reflection.Func{`0,``0,`1},System.Boolean)">
            <summary>
            扩展获取数据项，当数据项不存在时，通过调用委托获取数据项。线程安全。
            </summary>
            <typeparam name="TArg">参数类型</typeparam>
            <param name="key">键</param>
            <param name="arg">参数</param>
            <param name="func">获取值的委托，该委托除了键参数外，还有一个泛型参数</param>
            <param name="cacheDefault">是否缓存默认值，可选参数，默认缓存</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.DictionaryCache`2.GetItem``2(`0,``0,``1,NewLife.Reflection.Func{`0,``0,``1,`1},System.Boolean)">
            <summary>
            扩展获取数据项，当数据项不存在时，通过调用委托获取数据项。线程安全。
            </summary>
            <typeparam name="TArg">参数类型</typeparam>
            <typeparam name="TArg2">参数类型2</typeparam>
            <param name="key">键</param>
            <param name="arg">参数</param>
            <param name="arg2">参数2</param>
            <param name="func">获取值的委托，该委托除了键参数外，还有两个泛型参数</param>
            <param name="cacheDefault">是否缓存默认值，可选参数，默认缓存</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Collections.DictionaryCache`2.GetItem``3(`0,``0,``1,``2,NewLife.Reflection.Func{`0,``0,``1,``2,`1},System.Boolean)">
            <summary>
            扩展获取数据项，当数据项不存在时，通过调用委托获取数据项。线程安全。
            </summary>
            <typeparam name="TArg">参数类型</typeparam>
            <typeparam name="TArg2">参数类型2</typeparam>
            <typeparam name="TArg3">参数类型3</typeparam>
            <param name="key">键</param>
            <param name="arg">参数</param>
            <param name="arg2">参数2</param>
            <param name="arg3">参数3</param>
            <param name="func">获取值的委托，该委托除了键参数外，还有三个泛型参数</param>
            <param name="cacheDefault">是否缓存默认值，可选参数，默认缓存</param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Xml.ExtendData">
            <summary>
            扩展数据
            </summary>
        </member>
        <member name="M:NewLife.Xml.ExtendData.GetItem``1(System.String)">
            <summary>
            取得指定键的强类型值
            </summary>
            <typeparam name="T"></typeparam>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.ExtendData.SetItem(System.String,System.Object)">
            <summary>
            设置类型
            </summary>
            <param name="key"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Xml.ExtendData.Contain(System.String)">
            <summary>
            包含指定键
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.ExtendData.Remove(System.String)">
            <summary>
            移除指定项
            </summary>
            <param name="key"></param>
        </member>
        <member name="M:NewLife.Xml.ExtendData.FromXml(System.String)">
            <summary>
            从Xml转为具体数据
            </summary>
            <param name="xml"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Xml.ExtendData.ToXml">
            <summary>
            转为Xml
            </summary>
            <returns></returns>
        </member>
        <member name="P:NewLife.Xml.ExtendData.Data">
            <summary>数据</summary>
        </member>
        <member name="P:NewLife.Xml.ExtendData.XmlKeys">
            <summary>Xml数据键值</summary>
        </member>
        <member name="P:NewLife.Xml.ExtendData.Root">
            <summary>根名称</summary>
        </member>
        <member name="P:NewLife.Xml.ExtendData.Item(System.String)">
            <summary>
            读取设置数据
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Xml.ExtendData.IsEmpty">
            <summary>
            是否为空
            </summary>
        </member>
        <member name="T:NewLife.Web.ControlHelper">
            <summary>
            控件助手
            </summary>
        </member>
        <member name="M:NewLife.Web.ControlHelper.FindControl``1(System.Web.UI.Control,System.String)">
            <summary>
            查找指定类型的子孙控件
            </summary>
            <typeparam name="T">目标控件类型</typeparam>
            <param name="control">父控件，从该控件开始向下进行广度搜索</param>
            <param name="id">控件ID，不指定表示不限制</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.ControlHelper.FindControlUp``1(System.Web.UI.Control,System.String)">
            <summary>
            查找指定控件附近的控件，向上搜索
            </summary>
            <typeparam name="T">目标控件类型</typeparam>
            <param name="control">指定控件</param>
            <param name="id">控件ID，不指定表示不限制</param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Threading.ThreadX">
            <summary>
            线程扩展
            </summary>
        </member>
        <member name="F:NewLife.Threading.ThreadX.internalEvent">
            <summary>
            内部控制事件
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadX.Start">
            <summary>
            开始
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadX.Abort(System.Boolean)">
            <summary>
            取消
            </summary>
            <param name="onlytask">是否仅仅取消任务</param>
        </member>
        <member name="M:NewLife.Threading.ThreadX.Dispose">
            <summary>
            释放资源
            </summary>
        </member>
        <member name="M:NewLife.Threading.ThreadX.Dispose(System.Boolean)">
            <summary>
            释放资源。非用户代码调用时，仅释放非托管资源
            </summary>
            <param name="disposing">是否用户代码调用</param>
        </member>
        <member name="M:NewLife.Threading.ThreadX.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.Threading.ThreadX.FindException``1(System.Exception)">
            <summary>
            查找指定类型的异常
            </summary>
            <typeparam name="T"></typeparam>
            <param name="ex"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Threading.ThreadX.Name">
            <summary>名称</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.Task">
            <summary>任务</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.LastError">
            <summary>最后错误</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.Running">
            <summary>是否正在处理任务</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.IsAlive">
            <summary>是否活动</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.CanRelease">
            <summary>
            是否能够释放
            </summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.Thread">
            <summary>线程</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.StartTime">
            <summary>开始时间</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.AliveTime">
            <summary>活动时间</summary>
        </member>
        <member name="E:NewLife.Threading.ThreadX.OnTaskFinished">
            <summary>任务完成时</summary>
        </member>
        <member name="P:NewLife.Threading.ThreadX.Debug">
            <summary>
            是否调试
            </summary>
        </member>
        <member name="T:NewLife.Serialization.Protocol.ProtocolElementAttribute">
            <summary>
            协议元素特性
            </summary>
            <remarks>
            设置了该特性的字段或属性一定会被序列化
            </remarks>
        </member>
        <member name="T:NewLife.Security.DataHelper">
            <summary>
            数据助手
            </summary>
        </member>
        <member name="M:NewLife.Security.DataHelper.Hash(System.String)">
            <summary>
            MD5散列
            </summary>
            <param name="str"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.HashFile(System.String)">
            <summary>
            文件散列
            </summary>
            <param name="filename"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.CRC16(System.IO.Stream)">
            <summary>
            CRC校验
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.CRC16(System.Byte[])">
            <summary>
            CRC校验
            </summary>
            <param name="buffer"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.CRC16(System.String)">
            <summary>
            CRC校验文件
            </summary>
            <param name="filename"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.CRC32(System.IO.Stream)">
            <summary>
            CRC校验
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.CRC32(System.Byte[])">
            <summary>
            CRC校验
            </summary>
            <param name="buffer"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.CRC32(System.String)">
            <summary>
            CRC校验文件
            </summary>
            <param name="filename"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Encrypt(System.String,System.String)">
            <summary>
            加密
            </summary>
            <param name="content"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Encrypt(System.Byte[],System.String)">
            <summary>
            加密
            </summary>
            <param name="data"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Descrypt(System.String,System.String)">
            <summary>
            解密
            </summary>
            <param name="content"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Descrypt(System.Byte[],System.String)">
            <summary>
            解密
            </summary>
            <param name="data"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.BigEncrypt(System.String,System.String)">
            <summary>
            先压缩再加密
            </summary>
            <param name="content"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.BigDescrypt(System.String,System.String)">
            <summary>
            先解密再解压缩
            </summary>
            <param name="content"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.RC4(System.Byte[],System.String)">
            <summary>
            加密
            </summary>
            <param name="data">数据</param>
            <param name="pass">密码</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.GetKey(System.Byte[],System.Int32)">
            <summary>
            打乱密码
            </summary>
            <param name="pass">密码</param>
            <param name="kLen">密码箱长度</param>
            <returns>打乱后的密码</returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Sign(System.Byte[],System.String)">
            <summary>
            签名
            </summary>
            <param name="data"></param>
            <param name="priKey"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Verify(System.Byte[],System.String,System.String)">
            <summary>
            验证签名
            </summary>
            <param name="data">待验证的数据</param>
            <param name="signdata">签名</param>
            <param name="pubKey">公钥</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.ToHex(System.Byte[])">
            <summary>
            加密
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.FromHex(System.String)">
            <summary>
            解密
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Compress(System.Byte[])">
            <summary>
            压缩
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Security.DataHelper.Decompress(System.Byte[])">
            <summary>
            解压缩
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="T:NewLife.Reflection.FieldInfoX">
            <summary>
            快速字段访问
            </summary>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.Create(System.Reflection.FieldInfo)">
            <summary>
            创建
            </summary>
            <param name="field"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.Create(System.Type,System.String)">
            <summary>
            创建
            </summary>
            <param name="type"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.GetValue(System.Object)">
            <summary>
            取值
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.SetValue(System.Object,System.Object)">
            <summary>
            赋值
            </summary>
            <param name="obj"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.GetValue``1(System.Object,System.String)">
            <summary>
            静态快速取值
            </summary>
            <typeparam name="T"></typeparam>
            <param name="target"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.SetValue(System.Object,System.String,System.Object)">
            <summary>
            静态快速赋值
            </summary>
            <param name="target"></param>
            <param name="name"></param>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.op_Implicit(NewLife.Reflection.FieldInfoX)~System.Reflection.FieldInfo">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Reflection.FieldInfoX.op_Implicit(System.Reflection.FieldInfo)~NewLife.Reflection.FieldInfoX">
            <summary>
            类型转换
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Reflection.FieldInfoX.Field">
            <summary>目标字段</summary>
        </member>
        <member name="P:NewLife.Reflection.FieldInfoX.GetHandler">
            <summary>
            快速调用委托，延迟到首次使用才创建
            </summary>
        </member>
        <member name="P:NewLife.Reflection.FieldInfoX.SetHandler">
            <summary>
            快速调用委托，延迟到首次使用才创建
            </summary>
        </member>
        <member name="T:NewLife.IO.ReadWriteMemoryStream">
            <summary>
            读写流，继承自内存流，读写指针分开
            </summary>
            <remarks>
            注意资源锁，读写不可同时进行，会出现抢锁的情况。
            </remarks>
        </member>
        <member name="M:NewLife.IO.ReadWriteMemoryStream.SeekForWrite(System.Int64,System.IO.SeekOrigin)">
            <summary>
            已重载。
            </summary>
            <param name="offset"></param>
            <param name="loc"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteMemoryStream.ResetLength">
            <summary>
            重设长度，
            </summary>
        </member>
        <member name="M:NewLife.IO.ReadWriteMemoryStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            已重载。
            </summary>
            <param name="buffer"></param>
            <param name="offset"></param>
            <param name="count"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteMemoryStream.ReadByte">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="M:NewLife.IO.ReadWriteMemoryStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            已重载。
            </summary>
            <param name="buffer"></param>
            <param name="offset"></param>
            <param name="count"></param>
        </member>
        <member name="M:NewLife.IO.ReadWriteMemoryStream.WriteByte(System.Byte)">
            <summary>
            已重载。
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:NewLife.IO.ReadWriteMemoryStream.Dispose(System.Boolean)">
            <summary>
            资源释放，关闭事件量
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="P:NewLife.IO.ReadWriteMemoryStream.ReadTimeout">
            <summary>获取或设置一个值（以毫秒为单位），该值确定流在超时前尝试读取多长时间。</summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteMemoryStream.PositionForWrite">
            <summary>写位置</summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteMemoryStream.MaxLength">
            <summary>最大长度，超过次长度时清空缓冲区</summary>
        </member>
        <member name="P:NewLife.IO.ReadWriteMemoryStream.AvailableData">
            <summary>可用数据</summary>
        </member>
        <member name="T:NewLife.Web.WebHelper">
            <summary>
            网页工具类
            </summary>
        </member>
        <member name="M:NewLife.Web.WebHelper.WriteScript(System.String)">
            <summary>
            输出脚本
            </summary>
            <param name="script"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.GetSubString(System.String,System.Int32,System.Int32)">
            <summary>
            按字节截取
            </summary>
            <param name="Str">字符串</param>
            <param name="StartIndex">开始位置</param>
            <param name="Len">长度</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.JsEncode(System.String)">
            <summary>
            Js脚本编码
            </summary>
            <param name="str"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.Alert(System.String)">
            <summary>
            弹出页面提示
            </summary>
            <param name="msg"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.AlertAndEnd(System.String)">
            <summary>
            弹出页面提示并停止输出后退一步！
            </summary>
            <param name="msg"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.AlertAndRefresh(System.String)">
            <summary>
            弹出页面提示，并刷新该页面
            </summary>
            <param name="msg"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.AlertAndRedirect(System.String,System.String)">
            <summary>
            弹出页面提示并重定向到另外的页面
            </summary>
            <param name="msg"></param>
            <param name="url"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.AlertAndClose(System.String)">
            <summary>
            弹出页面提示并关闭当前页面
            </summary>
            <param name="msg"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.CheckEmptyAndFocus(System.Web.UI.Control,System.String)">
            <summary>
            检查控件值是否为空，若为空，显示错误信息，并聚焦到控件上
            </summary>
            <param name="control">要检查的控件</param>
            <param name="errmsg">错误信息。若为空，将使用ToolTip</param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.ExportExcel(System.Web.UI.WebControls.GridView,System.String,System.Int32)">
            <summary>
            导出Excel
            </summary>
            <param name="gv"></param>
            <param name="filename"></param>
            <param name="max"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.ExportExcel(System.Web.UI.WebControls.GridView,System.String,System.Int32,System.Text.Encoding)">
            <summary>
            导出Excel
            </summary>
            <param name="gv"></param>
            <param name="filename"></param>
            <param name="max"></param>
            <param name="encoding"></param>
        </member>
        <member name="M:NewLife.Web.WebHelper.RequestInt(System.String)">
            <summary>
            获取整型参数
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.RequestBool(System.String)">
            <summary>
            接收布尔值
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.RequestDateTime(System.String)">
            <summary>
            接收时间
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.RequestDouble(System.String)">
            <summary>
            接收Double
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.ConvertInt(System.String)">
            <summary>
            字符转换为数字
            </summary>
            <param name="val"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.ConvertBool(System.String)">
            <summary>
            字符转换为布尔
            </summary>
            <param name="val"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.ConvertDateTime(System.String)">
            <summary>
            字符转换为时间
            </summary>
            <param name="val"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Web.WebHelper.ConvertDouble(System.String)">
            <summary>
            字符转换
            </summary>
            <param name="val"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Web.WebHelper.UserHost">
            <summary>
            用户主机
            </summary>
        </member>
        <member name="T:NewLife.IO.BinaryTest">
            <summary>
            二进制操作测试
            </summary>
        </member>
        <member name="M:NewLife.IO.BinaryTest.Test">
            <summary>
            测试
            </summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.ID">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Name">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.ByteProperty">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Time">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Consolekey">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Guid">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Address">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Remote">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Bytes">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.ByteList">
            <summary>属性说明</summary>
        </member>
        <member name="P:NewLife.IO.BinaryTest.Dic">
            <summary>属性说明</summary>
        </member>
        <member name="T:NewLife.Configuration.Config">
            <summary>
            通用配置辅助类
            </summary>
        </member>
        <member name="M:NewLife.Configuration.Config.Contain(System.String)">
            <summary>
            是否包含指定项的设置
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Configuration.Config.GetConfig``1(System.String)">
            <summary>
            取得指定名称的设置项，并转为指定类型
            </summary>
            <typeparam name="T"></typeparam>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Configuration.Config.GetConfig``1(System.String,``0)">
            <summary>
            取得指定名称的设置项，并转为指定类型。如果设置不存在，则返回默认值
            </summary>
            <typeparam name="T"></typeparam>
            <param name="name"></param>
            <param name="defaultValue"></param>
            <returns></returns>
        </member>
        <member name="M:NewLife.Configuration.Config.GetConfigByPrefix(System.String)">
            <summary>
            根据指定前缀，获取设置项
            </summary>
            <param name="prefix"></param>
            <returns></returns>
        </member>
        <member name="P:NewLife.Configuration.Config.AppSettings">
            <summary>应用设置</summary>
        </member>
        <member name="P:NewLife.Configuration.Config.ConnectionStrings">
            <summary>连接字符串设置</summary>
        </member>
    </members>
</doc>
